【Postman接口测试】Postman的常见断言

在使用Postman进行接口测试时,断言是验证接口响应是否符合预期的关键手段。通过设置各种断言,我们能够确保接口按照设计要求返回正确的数据、状态码、响应头信息以及在规定的时间内完成响应。下面将详细介绍Postman中常见的断言,包括状态码断言、响应正文断言、响应头断言和响应时间断言,并结合具体案例进行说明。

一、状态码断言

状态码断言用于验证接口返回的HTTP状态码是否符合预期。常见的状态码如200表示请求成功,404表示资源未找到,500表示服务器内部错误等。在Postman中设置状态码断言非常简单。

案例

假设我们有一个获取用户信息的接口https://example.com/api/user,正常情况下应该返回200状态码。

操作步骤

  1. 在Postman中发送请求到该接口。
  2. 点击"Tests"选项卡,在代码编辑区域输入以下代码:
javascript 复制代码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
  1. 上述代码中,pm.test用于定义一个测试用例,第一个参数是测试用例的名称"Status code is 200",第二个参数是一个函数。在函数内部,pm.response.to.have.status(200)表示断言响应的状态码为200。
  2. 发送请求后,在"Test Results"区域可以查看断言结果。如果状态码确实为200,测试用例将显示通过;否则,测试用例将显示失败,并提示实际状态码与预期状态码不一致。

二、响应正文断言

响应正文断言用于验证接口返回的内容是否符合预期。可以检查响应正文中是否包含特定的字符串、是否符合某种数据格式(如JSON格式)等。

案例

还是以获取用户信息的接口为例,假设接口返回的JSON数据中包含"name"字段,且值为"John Doe"。

操作步骤

  1. 同样在"Tests"选项卡中编写测试代码:
javascript 复制代码
pm.test("Response body contains name John Doe", function () {
    var responseData = pm.response.json();
    pm.expect(responseData.name).to.eql("John Doe");
});
  1. 这段代码首先使用pm.response.json()将响应正文解析为JSON格式的数据并存储在responseData变量中。然后,使用pm.expect进行断言,responseData.name获取JSON数据中的"name"字段的值,to.eql用于判断该值是否等于"John Doe"。
  2. 发送请求后,Postman会执行该断言并在"Test Results"区域显示结果。若响应正文中"name"字段的值确实为"John Doe",则测试通过;否则,测试失败。

三、响应头断言

响应头断言用于验证接口返回的响应头信息是否符合预期。比如验证响应头中的"Content-Type"字段是否为"application/json",以确保返回的数据格式正确。

案例

继续以之前的接口为例,验证其响应头中的"Content-Type"为"application/json"。

操作步骤

  1. 在"Tests"选项卡中输入以下代码:
javascript 复制代码
pm.test("Content-Type is application/json", function () {
    pm.response.to.have.header("Content-Type", "application/json");
});
  1. 这里pm.response.to.have.header用于断言响应头中存在指定的字段及其对应的值。第一个参数是响应头字段名称"Content-Type",第二个参数是预期的值"application/json"。
  2. 当发送请求后,Postman会检查响应头信息。若"Content-Type"字段的值为"application/json",测试通过;否则,测试失败。

四、响应时间断言

响应时间断言用于验证接口的响应时间是否在规定的时间范围内。这对于评估接口的性能非常重要。

案例

假设我们希望获取用户信息的接口响应时间不超过500毫秒。

操作步骤

  1. 在"Tests"选项卡中编写如下代码:
javascript 复制代码
pm.test("Response time is less than 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});
  1. 代码中pm.response.responseTime获取接口的响应时间(单位为毫秒),pm.expect用于断言该响应时间是否小于500毫秒。to.be.below表示期望的值小于指定的值。
  2. 发送请求后,Postman会测量响应时间并执行断言。如果响应时间小于500毫秒,测试通过;否则,测试失败。

通过以上对Postman中常见断言的介绍和案例演示,你可以在接口测试过程中灵活运用这些断言,全面验证接口的正确性和性能。在实际测试中,根据接口的具体需求和业务逻辑,合理组合不同类型的断言,能够更有效地发现接口存在的问题,确保软件的质量。希望这些内容对你在使用Postman进行接口测试时有所帮助。

相关推荐
辣香牛肉面8 小时前
Wireshark v4.6.2 开源免费网络嗅探抓包工具中文便携版
网络·测试工具·wireshark
may_一一1 天前
xpath定位:selenium和playwrightAnt Design / 表单类页面)
selenium·测试工具
daopuyun1 天前
CNAS/CMA软件检测实验室源代码漏洞测试工具选型要求与比对
软件测试·测试工具·软件检测·cnas认可·cma认定
Wpa.wk1 天前
接口自动化测试 - 请求构造和响应断言 -Rest-assure
开发语言·python·测试工具·接口自动化
AI_56781 天前
Postman接口测试提速技巧:批量请求+智能断言实践
测试工具·lua·postman
Luminbox紫创测控1 天前
整车自然暴晒与全光谱阳光模拟老化相关性研究
测试工具
Warren981 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
弹简特1 天前
【JavaEE06-后端部分】SpringMVC01-Spring MVC第一大核心URL 路由映射【建立连接】与 Postman 接口测试详解
java·spring boot·测试工具·spring·postman
测试大圣2 天前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例