Postman做接口测试
以一下接口为例:
接口一:创建定时任务
请求方法:post
Content-Type:“application/x-www-form-urlencoded”
路径: /php/addtaskinfo.php
调用参数: jsondata[taskname]:任务名称
jsondata[isdisable]:任务是否启用(0:启用, 1:禁用)
jsondata[level]:任务优先级(0-15)
jsondata[creator]:创建任务用户
jsondata[triggers]:触发器列表(参照下方详解)
jsondata[commands]:操作列表(参照下方详解)
jsondata[dirname]:任务所属目录(为空表示属于根目录)
返回数据: {“res”:”1”}
接口二:手动开始任务
请求方法:post
Content-Type:“application/x-www-form-urlencoded”
路径: /php/exetaskcmd.php
调用参数:jsondata[taskCommand]:’runtaskinfo’
jsondata[taskId]:任务 id
返回数据: {“res”:”1”}
1.创建集合
第一步,点击New Collection,创建集合
第二步,输入集合名称
2.创建文件夹
第一步,点击集合右下角,打开集合设置
第二步,点击Add Folder创建文件夹,文件夹就是接口的名称
3.创建请求
第一步,点击文件夹右边三点
第二步,点击Add Request,创建请求
第三步,输入请求名
4.输入请求url
选择请求方法,和请求url
5.输入请求体
第一步,因为请求是表单格式的,所以点击Body-x-www-form-urlencoded,输入请求体
第二步,点击Save保存
第三步,点击Send执行
6.查看返回结果
7.点击下方响应数据Body,看到返回结果为‘1’,跟上面返回结果一致请求成功
8.断言:
(1)json断言,点击Tests,点击右边的Response body:JSON value check,如下图:
图1
1代表的是测试名字,你可以把它当做成自己的测试预期结果
2代表的是字段,就是我选取res作为我断言的字段,如图1
3代表的是我2字段里面的内容,如果我实际结果res字段里面的内容跟我填的3这个地方的内容一样,那么测试成功,不一样就失败
假设有一段响应是:
{“errcode”:4002,
“errmsg”:{
“code”:200,
“msg”:”ok”}
“info”:[1,2,3,4,5]
}
如果我想获取“ok”,2这里就可以填写JSONData.errmsg.msg
如果我想获取‘5’,2这里就可以填写JSONData.info[4]
(2)包含字段,点击Tests,点击右边的Response body:Contains string,如下图:
1代表的是测试名字,你可以把它当做成自己的测试预期结果
2是请求响应里面包含的字段,也就是当请求响应里面包含这个字段,就断言成功
9.为了更好的展示断言结果,我们可以设置一下操作
1我们选择一个包含字符断言
2是一段固定代码,获取到我们请求的响应数据,responseBody是响应体类型为String,但是我们的响应体是Json格式的所以我们要把String转化为Json格式的。
3是响应数据的res字段
4实际结果与预期结果的表述我们把获取到的result放在实际结果:后面
5res字段的值,也是我们的预期结果
6最后断言后显示的结果,比较清楚
10.关联
含义:后一个请求的请求信息要用到前一个请求的响应信息,如:登录时的token信息等,接下来我们要调用手动开始任务的接口,但是请求体当中需要用到设置计划任务接口响应里面的taskId信息,所以我们将做一下关联。
在前一个请求的断言中将需要用到的响应数据全局化,做如下设置:
1是获取到taskId字段信息
2点击“Set a gobal variable“添加一个全局变量
4是获取到的taskId字段
3是给4的taskId取一个全局变量名taskid,切记3和4不要同名
填写好手动开始任务的请求信息后,在请求需要用到的位置用‘{{全局变量}}‘进行参数化就可以了,记得在运行请求时先让前一个请求先运行。如下图:
运行结果如下:
运行通过,关联成功。