Postman 接口测试
一、环境变量和全局变量
1.1 环境变量
环境变量是用来标识不同的测试环境的,例如可以有沙箱环境、预生产环境和生产环境。在postman中,可以通过创建环境变量按钮来不同的变量。
不同的开发,测试,生产环境
通过双大括号{{url}}来引用环境变量
1.2 全局变量
全局变量是指可以在任意接口引用的变量,其中环境变量也是全局变量的一种形式。通过双大括号的形式来引用。
{{变量名}}
二、接口关联
2.1 json提取器实现接口关联
第一个接口
//通过json提取器提取access_token值
//把返回的字符串格式数据转换为对象的形式
var result = JSON.parse(responseBody);
//把access_token设置为全局变量
pm.globals.set('access_token',result.access_token);
第二个接口
{{access_token}}
2.2 正则表达实现接口关联
第一个接口
//通过正则表达式提取器实现接口关联,match匹配,.*?匹配任意字符
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'))
console.log(result[1])
//把access_token设置为全局变量
pm.globals.set('access_token',result[1]);
第二个接口
{{access_token}}
2.3 从xml返回的数据中提取关键字
返回信息
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<securityPinTransmission xmlns="http://www.aws.com/mobbed/rolesAndRights">
<challenge>86E3498793E8D2FA1D2FE3F60A2BFFF6C1FB22B20A29F86B250E0A9003F3293D</challenge>
<hashProcedureVersion>2</hashProcedureVersion>
</securityPinTransmission>
Tests脚本
//将xml的返回值转为json格式
var DATA = xml2Json(responseBody);
//获取challenge的值,并将其设置为全局变量,按照原来的xml标签对,逐级向下获取
pm.globals.set('challenge',DATA.securityPinTransmission.challenge);
如果xml的标签对中包含特殊字符,如冒号,则不能使用DATA.XX 的方式来获取,需要用中括号+单引号来获取
// 将xml格式转为json格式
var data = xml2Json(responseBody);
//将返回值输出到控制台调试 key=ns3:certificate,需要用['ns3:certificate']来表示,不要加点
console.log(data['ns3:certificate']['ns3:service'][0]['ns1:dirt']['ns1:APN']);
// 定义变量来接收制定的返回值,
var test_dyn = data['ns3:certificate']['ns3:service'][0]['ns1:dirt']['ns1:APN']
// 设置test_dyn为全局变量
pm.globals.set("test_dyn", test_dyn);
2.4 响应断言中使用if判断
判断响应码
if(tests["code is 409"] = responseCode.code === 409){
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("The vehicle is already linked to the user");
});
}
else{
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
}
标签:ns3,提取,Postman,断言,接口,access,token,全局变量,pm
From: https://www.cnblogs.com/orange2016/p/17019787.html