断言
将测试断言数据写进到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模块添加下列代码
//判断状态码
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}}
var jsonData = JSON.parse(responseBody)
postman.setEnvironmentVariable("stationid",jsonData.data.location.id);
具体可参考:
Postman官方文档: