背景
1、接口执行效率高,可测试的代码覆盖率高,维护成本低,属于低成本,高收益
2、postman操作简单方面,如果写脚本可以会花费一点时间
3、适应于代码能力不太好的同学
4、适用测试时,开发刚交付接口测试文档的调试
接口关联的原理
Postman为什么可以对接口就行关联,进而实现接口自动化,因为,postman可以设置全局变量。
Postman把上一个接口返回值,设置为全局变量,这样下一个接口就可以引用这个全局变量了。
实现接口自动化
本次我用两个简单的接口,来演示用postman实现接口自动化
登陆接口:http://127.0.1:8000/username?name=zhangsan&password=123456
输入用户名与密码,返回用户名
1.1、接口
欢迎接口:http://127.0.1:8000/welcome?name=zhangsan
输入,登陆接口返回的用户名,返回“欢迎xx”
注:大家不要纠结接口的功能性,这个只是为了演示postman的接口自动化,用Django框架写的简单接口
1.2、疑问:
虽说我们把上面的接口调通了,可以运行了,但是我们遇到下面几个问题
(1)、每次我们运行第二个接口(欢迎接口),都要把前面一个接口(登陆接口)返回值,name取出来,作为输入参数,这样导致,每个不同的用户登陆,我都要去登陆接口的返回参数name,才能运行欢迎接口,这样就很麻烦
(2)、如果用户不同,那么登陆接口里面的name与password也会不同,每次不同的用户登陆时,都要重新输入用户名与密码,在我们测试中,如果我们要造很多的用户进行测试,那么就会很麻烦,操作起来很耗时间。
2、实现接口关联(接口串起来)
对于上面1.2提出问题,相信是我们在测试接口中,经常会遇到的问题,那么该怎么样解决呢
2.1、解决1.2(1)的问题(就是欢迎接口要不停输入name的问题):
postman中有个全局变量的功能,我们可以把,欢迎接口里面的name设置成全局变量,我们把登陆接口返回值name赋值给设置的全局变量,欢迎接口再去取最新的全局变量里面的name值就行了。
(1)、设置全局变量
我们需要把第二个接口(欢迎接口)输入值name设置成全局变量
设置里面设置欢迎接口name值的全局变量
(2)、给全局变量赋值
需要登陆接口返回的name值给全局变量names1赋值,这样names1里面的值才是最新的
var jsondata=pm.response.json()
pm.globals.set(“names1”,jsondata.name)
console.log(jsondata)
这样就解决了,欢迎接口频繁输入name的问题
实现数据驱动
3.1、解决1.2(2)的问题(就是登陆接口要不停输入用户名与密码的问题):
思路与上面类似,把用户名与密码也设置成变量,去配置文件(xx.csv文件)里面获取值
(1)、创建配置文件(xx.csv文件)
2)、设置用户名与密码的变量,并写3组登陆数据
因为,登陆接口里面,输入值有:用户名,密码,所以,我们把用户名与密码的值设置成变量
(3)、接口用户名与密码的值改成配置文件(1.csv)里面的设置的变量
(4)、运行
运行成功,heihei就是1.csv里面的第一个数据
postman只是一个工具,方便不会写脚本的同学,掌握编程语言的同学可以使用脚本、测试框架、测试平台来实现。
注:以上仅个人见解,如有不对,请指正,谢谢。