0


【接口测试】Postman常见五类断言方法

1. 响应状态码断言
  • 方法:pm.response.to.have.status(code)
  • 自定义参数:code(期望的 HTTP 状态码)
  • 使用方法:验证 API 响应的 HTTP 状态码是否与期望的状态码匹配。
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); // 期望状态码为 200
});
2. 响应头断言
  • 方法:pm.response.to.have.header(key)pm.expect(pm.response.headers.get(key)).to.eql(value)
  • 自定义参数:key(HTTP 头的名称),value(期望的头值)
  • 使用方法:验证响应中是否包含特定的 HTTP 头字段,并检查其值是否与期望的值相等。
pm.test("Content-Type header is present", function () {
    pm.response.to.have.header("Content-Type"); // 验证 Content-Type 头存在
});
​
pm.test("Content-Type is JSON", function () {
    pm.expect(pm.response.headers.get("Content-Type")).to.eql("application/json"); // 验证 Content-Type 的值为 application/json
});
3. 响应体断言
  • 方法:pm.expect(pm.response.text()).to.include(string)pm.expect(pm.response.json()).to.eql(jsonObject)pm.expect(pm.response.json().key).to.eql(value)
  • 自定义参数:string(期望的文本),jsonObject(期望的 JSON 对象),key(JSON 中的字段名),value(期望的字段值)
  • 使用方法:验证响应体文本是否包含特定的字符串,或者检查 JSON 响应体是否与期望的 JSON 对象相等,或者验证 JSON 响应体中特定字段的值。
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("some text"); // 验证响应体包含 "some text"
});
​
pm.test("Response body matches JSON object", function () {
    var expectedJson = { key: "value" };
    pm.expect(pm.response.json()).to.eql(expectedJson); // 验证响应体与 expectedJson 相等
});
​
pm.test("Response contains specific JSON value", function () {
    pm.expect(pm.response.json().key).to.eql("expected value"); // 验证响应体中 key 字段的值为 "expected value"
});
4. 响应时间断言
  • 方法:pm.expect(pm.response.responseTime).to.be.below(ms)pm.expect(pm.response.responseTime).to.be.above(ms)
  • 自定义参数:ms(期望的响应时间,以毫秒为单位)
  • 使用方法:验证 API 响应的时间是否低于或高于期望的响应时间。
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200); // 验证响应时间低于 200ms
});
​
pm.test("Response time is above 100ms", function () {
    pm.expect(pm.response.responseTime).to.be.above(100); // 验证响应时间高于 100ms
});
5. 响应内容类型断言
  • 方法:pm.response.to.be.jsonpm.response.to.be.htmlpm.response.to.be.textpm.response.to.be.xml
  • 自定义参数:无
  • 使用方法:验证 API 响应的内容类型是否与期望的类型匹配。
pm.test("Response is JSON", function () {
    pm.response.to.be.json; // 验证响应内容为 JSON 类型
});
​
pm.test("Response is not HTML", function () {
    pm.response.to.not.be.html; // 验证响应内容不是 HTML 类型
});

请注意,以上示例中的断言方法可能需要适当地嵌套在

pm.test

函数中,以便在 Postman 中正确执行和报告。另外,有些断言方法可能返回布尔值,它们应与其他断言方法(如

pm.expect(condition).to.be.true

)结合使用,以确保正确的测试逻辑。

此外,Postman 支持使用 Chai.js 的所有断言方法,因此您可以利用 Chai.js 提供的更多断言功能,如深度比较、正则表达式匹配等。您可以查阅 Chai.js 的文档以获取更多信息。


本文转载自: https://blog.csdn.net/qq_32177491/article/details/135661699
版权归原作者 小邓在Working 所有, 如有侵权,请联系我们删除。

“【接口测试】Postman常见五类断言方法”的评论:

还没有评论