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

本文介绍了如何在Postman中使用各种断言方法进行API测试,包括验证HTTP状态码、响应头、响应体内容、响应时间以及内容类型,以确保API的正确性和性能。
摘要由CSDN通过智能技术生成
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 的文档以获取更多信息。

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值