Linux中Postman进行断言的详细指南
断言是API测试的核心环节,用于验证接口响应是否符合预期(如状态码、响应体内容、响应时间等)。Postman通过Tests标签页提供的JavaScript API支持灵活的断言编写,以下是具体操作流程与常见断言类型:
pm.test()方法和pm.expect()断言库编写验证逻辑(支持旧版tests[]语法,但新版更推荐)。验证响应状态码是否符合预期(如200表示成功、404表示未找到)。
pm.test("Status code is 200", function () {
pm.response.to.have.status(200); // 新版语法
// 或旧版:tests['Status code is 200'] = pm.response.code === 200;
});
验证响应体是否包含/等于指定字符串(适用于文本格式响应)。
// 断言响应体包含特定字符串
pm.test("Body contains 'success'", function () {
pm.expect(pm.response.text()).to.include("success");
});
// 断言响应体完全等于指定字符串
pm.test("Body is exactly 'Hello World'", function () {
pm.response.to.have.body("Hello World");
});
解析JSON响应并验证字段值(适用于RESTful API常见格式)。
pm.test("JSON field 'name' is 'John'", function () {
var jsonData = pm.response.json(); // 解析JSON响应
pm.expect(jsonData.name).to.eql("John"); // 新版:严格等于
// 或旧版:tests['name is John'] = jsonData.name === "John";
});
// 断言JSON字段是否存在
pm.test("JSON has 'id' field", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('id');
});
验证响应头是否包含特定字段(如Content-Type)。
pm.test("Content-Type header is present", function () {
pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json; charset=utf-8');
});
验证响应时间是否在预期范围内(如小于200ms)。
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test()+pm.expect()语法(更直观、易维护),旧版tests[]语法仅支持简单布尔判断。通过以上步骤,可在Linux系统的Postman中高效完成API断言,确保接口响应符合业务需求。