Postman接口断言&上下游参数传递

时间:2022-10-08 21:52:33

断言

将测试断言数据写进到Test模块当中, 每次发送API请求的时候会自动进行断言检查数据。

常见的断言方法如下:

判断状态码:pm.response.to.have.status()

判断返回体: const responseJson = pm.response.json();pm.expect(responseJson.code).to.eql(0);

判断返回头:pm.response.headers.get()     

拿气象局获取添加接口举例说明

url中填写:http://weather.cma.cn/api/climate?stationid=54511

在test模块添加下列代码

​​


Postman接口断言&上下游参数传递

//判断状态码
pm.test("Status code is 200", function () {
  pm.response.to.have.status(200);
});

//如果返回格式为JSON, 判断返回内容
pm.test("The response has all properties", () => {
    //parse the response JSON and test three properties
    const responseJson = pm.response.json();
    pm.expect(responseJson.code).to.eql(0);
    pm.expect(responseJson.msg).to.eql('success');
    pm.expect(responseJson.data.data).to.have.lengthOf(12);
});


//返回内容包含某字段
pm.test("Body contains string",() => {
  pm.expect(pm.response.text()).to.include("beginYear");
});

//返回状态码只要满足其中一个则表示成功
pm.test("Successful POST request", () => {
  pm.expect(pm.response.code).to.be.oneOf([200,201,202]);
});

//判断返回头内容是否满足要求
pm.test("Content-Type header is application/json", () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json;charset=UTF-8');
});

pm.test("Content-Type header is application/json", () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json');
});

//判断返回是否携带JSESSIONID
pm.test("Cookie JSESSIONID not is present", () => {
  pm.expect(pm.cookies.has('JSESSIONID')).to.be.false;
});


//判断返回题字段类型
const jsonData = pm.response.json();
pm.test("Test data type of the response", () => {
  pm.expect(jsonData).to.be.an("object");
  pm.expect(jsonData.msg).to.be.a("string");
  pm.expect(jsonData.code).to.be.a("number");
  pm.expect(jsonData.data.data).to.be.an("array");
  pm.expect(jsonData.website).to.be.undefined;
//  pm.expect(jsonData.email).to.be.null;
});

上下游参数传递

首先需要明确如何设置参数, 参数是环境变量还是全局变量。此处以环境变量举例说明, 打开postman之后点击设置,由于我们是环境变量点击import, 我最近在拿中国气象局接口练手, 所以以气象局接口举例说明。 从接口https://weather.cma.cn/api/weather/view?stationid=取到的id赋值给下一个接口(具体获取方法如下图), 获取成功可以点击查看标识检查数据是否获取成功。再后续接口中使用{{stationid}}即可使用, 如{{url}}/api/climate?stationid={{stationid}}

Postman接口断言&上下游参数传递

Postman接口断言&上下游参数传递

 Postman接口断言&上下游参数传递

 Postman接口断言&上下游参数传递

 

var jsonData = JSON.parse(responseBody)
postman.setEnvironmentVariable("stationid",jsonData.data.location.id);

Postman接口断言&上下游参数传递

 Postman接口断言&上下游参数传递

具体可参考:

Postman官方文档:

Introduction | Postman Learning Cent