Postman 断言和返回数据提取

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);
    });
}
posted @ 2023-01-02 13:27  逆流的鱼2016  阅读(924)  评论(0编辑  收藏  举报