Ubuntu Postman断言设置指南
在Ubuntu系统中,Postman通过Tests标签页编写JavaScript断言脚本,验证API响应是否符合预期(如状态码、响应体内容、响应时间等)。以下是详细的操作步骤与常见断言示例:
Content-Type: application/json)或请求体(如JSON数据)。Postman支持两种断言语法:pm.test() + pm.expect()(推荐,更直观)和tests[](旧版兼容)。以下是常见断言类型的实现:
用于确认接口是否返回预期状态码(如200表示成功、404表示未找到)。
// 推荐语法:使用pm.test()和pm.expect()
pm.test("Status code is 200", function () {
pm.response.to.have.status(200); // 断言状态码为200
});
// 旧版语法:使用tests数组
tests["Status code is 200"] = pm.response.code === 200;
说明:pm.response.to.have.status()是Postman提供的链式方法,直接判断状态码是否符合预期。
用于检查响应体(如JSON、XML)是否包含特定字符串(如接口返回的“success”标识)。
pm.test("Body contains 'success'", function () {
pm.expect(pm.response.text()).to.include("success"); // 断言响应文本包含“success”
});
说明:pm.response.text()获取响应体的原始文本,to.include()用于判断是否包含指定字符串。
用于提取响应体中的JSON字段,并验证其值是否符合预期(如id、name等字段)。
pm.test("Response contains expected JSON data", function () {
var jsonData = pm.response.json(); // 将响应体解析为JSON对象
pm.expect(jsonData).to.have.property("id"); // 断言JSON包含"id"字段
pm.expect(jsonData.id).to.eql(156894); // 断言"id"字段的值为156894
pm.expect(jsonData.name).to.eql("John Doe"); // 断言"name"字段的值为"John Doe"
});
说明:pm.response.json()将响应体转换为JSON对象,to.have.property()判断是否存在指定字段,to.eql()用于严格比较值(支持数字、字符串、布尔值等)。
用于检查接口响应时间是否在预期范围内(如小于200ms)。
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200); // 断言响应时间小于200ms
});
说明:pm.response.responseTime获取响应时间(单位:毫秒),to.be.below()判断是否小于指定值。
用于检查响应头是否包含特定字段(如Content-Type)。
pm.test("Content-Type header is present", function () {
pm.response.to.have.header("Content-Type"); // 断言响应头包含"Content-Type"
});
说明:pm.response.to.have.header()用于判断响应头是否存在指定字段。
forEach)结合pm.expect()实现。