在现代软件开发过程中,API(应用程序编程接口)扮演着极为重要的角色,它们允许不同的软件应用之间进行互动和数据交换。随着 API 首次出现的应用越来越复杂,确保 API 的可靠性和稳定性变得尤为重要。这就是为什么进行 API 测试,尤其是利用断言进行自动化测试,在软件开发生命周期中占有一席之地。
Postman 是一款广受欢迎的 API 测试工具,它可以发送 HTTP 请求,接收响应,还提供了一套丰富的功能,让我们能够创建测试脚本以验证 API 响应的各个方面是否符合预期。本文将详细介绍如何在 Postman 中利用断言进行 API 测试。
初探断言测试
断言测试是自动化测试的核心,它的工作原理很简单:在接收到 API 响应后,验证实际结果是否符合预期。如果符合预期,测试通过;如果不符合,则测试失败,说明 API 的某个方面可能存在问题。
在 Postman 中,断言测试是通过编写 JavaScript 脚本实现的,这些脚本利用 Postman 内置的断言库 Chai 进行验证。
编写断言测试脚本
在 Postman 中创建断言测试的步骤,通常涉及以下几个方面的验证:
1. 验证状态码
状态码是了解 API 响应是否成功的最直接指标。
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2. 验证响应时间
响应时间是衡量 API 性能的重要指标之一。
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
3. 验证响应体
响应体中包含了 API 返回的数据,验证其结构和内容是 API 测试中最重要的一环。
pm.test("Body contains the expected structure and data", function () {
var responseBody = pm.response.json();
pm.expect(responseBody).to.deep.include({
"expected_key": "expected_value"
});
});
4. 验证响应头
响应头中可能包含了诸如内容类型、字符集等信息,有时候也需要进行验证。
pm.test("Content-Type is application/json", function () {
pm.response.to.have.header("Content-Type");
var headerValue = pm.response.headers.get("Content-Type");
pm.expect(headerValue).to.include("application/json");
});
执行测试和查看结果
编写好测试脚本后,发送请求,Postman 将自动运行这些测试,并在“Test Results”选项卡中显示测试结果。如果所有测试都通过了,你的 API 在这些测试设计的方面表现是符合预期的,这会大大增强你对 API 的信心。
比 Postman 更好用的工具:Apifox
在 Apifox 中进行断言测试更加简便,而且更加强大,不需要编写 JavaScript 脚本,直接通过可视化的方式进行断言。
在 Apifox 中打开一个项目,然后打开其中一条接口,依次点击【修改文档->后置操作->断言】。
打开后,你可以填写断言名称,设置断言对象,要断言响应 Body 还是响应 Header 等。
然后通过, JSONPath 表达式来提取返回的响应数据,将提取出来的数据进行断言。比如通过表达式 $.data.name
来断言返回的字段 name
的值是否等于“李四”,填写完毕后保存即可。
保存完毕,我们来到运行页发送一个请求,就会看到运行结果,快去试试吧!
总结
利用 Postman 进行断言测试不仅可以提高 API 的质量,还可以节省大量的手动测试时间,使得测试过程更加自动化和系统化。通过精心设计的测试脚本,你可以确保你的 API 在生产环境中稳定可靠地运行。另外,推荐使用 Apifox,Apifox 的可视化断言不用写那么复杂的脚本,省事很多,快去体验一下吧!
知识扩展: