2 功能
2.1 断言
- Check if response body contains a string (检查响应主体是否包含字符串)
pm.test("响应正文包含",function(){
pm.expect(pm.response.text()).to.include("add-successful");});
- Check if response body is equal to a string (检查响应主体是否等于一个字符串)
// 响应正文为:add-successful
pm.test("响应正文等于",function(){
pm.response.to.have.body("successful");});// 断言失败,报错如下// 响应正文等于 | AssertionError: expected response body to equal 'successful' but got 'add-successful'
- responseTime小于
pm.test("响应时间小于", function (){
pm.expect(pm.response.responseTime).to.be.below(200);});
- js中常见的pm.response
// 返回的响应对象
pm.response
// 返回的头信息
pm.response.headers
// 返回的状态码
pm.response.code
// 返回的文本内容
pm.response.text
// 返回的响应时间
pm.response.responseTime
// 返回的json串
pm.response.json()
2.2 上传文件
使用案例woniusales的批次导入功能,抓包数据如下:
- headers
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqCWG6rRC5rcNBGUr
- body
因为content-type的类型是multipart/form-data,所以请求数据的传输类型应该为form-data:
接下来就可以开始填写body的数据了:
在发送请求之前,最好检查一下cookie是否有值:
可以看到cookie是有值的,但是这次不用他了,我们手动在header中添加一下cookie:
现在就可以点击发送了:
2.3 全局变量
全局变量:作用于所有的测试集,host域名
环境变量:作用于某个测试集
文件变量:postman外部创建一个csv或者txt的文件,变量放进去
设置变量的位置在postman的右上角有一个眼睛图标,点击后弹出的窗口可以设置全局变量:
点击globals区域右侧的edit,弹出窗口如下:
点击save保存全局变量的值,接下来就是引用了,引用规则为{{全局变量名字}}:
2.4 环境变量
作用域生效为某个测试集
进入设置环境变量的页面:
点击上半截的edit只能对当前选择的环境进行更新,如果要添加新的环境变量,需要点击右上角的齿轮:
点击齿轮:
点击add:
请求界面如下:
2.5 参数化
数据驱动:ddt
把数据放到代码的外面,让测试根据数据的走向而走下去
在woniusales上面,准备一个txt的文件,文件中存放新增会员变量,然后我在读取这个txt从而实现脚本的参数化。
- 准备txt或者csv文件,用来存放测试数据
- 创建一个测试集,添加一个请求add_customer,请求数据如下:
- 在测试集右侧点击箭头,打开run界面:
- 点击run:
- 点击选择文件:
- 预览测试数据:
- 确认数据没有问题,点击run开始执行:
2.6 接口关联
A接口响应结果中包含B接口的请求数据
login接口的响应结果中有cookie,add_customer中请求头里面需要有一个cookie,这个cookie正好是login响应的那个cookie
构造一个场景:
- 先发送一个登录的请求
- 在tests窗口获取登录请求输出的headers
- 通过js的代码解析出headers中的cookie
- 把cookie的值存为一个环境变量
- 再发送一个添加会员的请求,该请求中使用环境变量来获取cookie
接下来我们完成具体工作:
- 创建一个login的请求,请求头和请求数据都是一般数据,清除cookie内容,tests的内容如下:
// step1:获取响应的头文件var login_headers = pm.response.headers;
console.log(login_headers);// step2:把头信息转换为json串var json_login_headers =JSON.stringify(login_headers);
console.log(json_login_headers);// step3:把json转换数组var array_login_headers =JSON.parse(json_login_headers);
console.log(array_login_headers);// step4:获取cookie_data,根据下标从0开始var cookie_data = array_login_headers[1];// step5:获取JSESSIONID,根据keyvar jsessionid_data = cookie_data["value"]
console.log(jsessionid_data);// step6:把JSESSIONID设置为环境变量
pm.environment.set("aaaa", jsessionid_data);
控制台的数据如下:
检查环境变量中是否出现aaa变量:
- 创建add_customer请求,请求的数据中需要在头文件中添加cookie:
版权归原作者 蜗牛学苑_武汉 所有, 如有侵权,请联系我们删除。