Postman 编写测试
测试确认您的 API 按预期工作,服务之间的集成可靠地运行,并且任何更改都没有破坏现有功能。您可以使用 JavaScript 为 Postman API 请求编写测试脚本。当您的 API 项目出现问题时,您还可以使用测试代码来帮助调试过程。例如,您可能会编写一个测试,通过发送包含不完整数据或错误参数的请求来验证 API 的错误处理。
添加测试
您可以将测试添加到单个请求、集合和集合中的文件夹。Postman 包括您添加的代码片段,然后更改以适合您的测试逻辑。
要向请求添加测试,请打开请求并在“测试”选项卡中输入您的代码。测试将在请求运行后执行。输出位于响应的“测试结果”选项卡中。
向 gRPC 请求添加测试
- 转到gRPC 请求中的脚本选项卡。
- 选择要向其添加测试的执行挂钩(调用前或响应后)。
- 使用右侧窗格中的片段添加测试或编写自定义断言。
无论方法类型是一元、客户端流、服务器流还是双向流,这两个执行挂钩都可用于所有 gRPC 请求。您的脚本可以包含您需要的任意多个测试,并且在您选择Save时将与您的请求的其余部分一起保存。
当您选择Invoke时,将在调用请求之前或之后运行测试。如果您选择Cancel,请求执行和任何进一步的脚本执行。
如果您的 Before invoke 脚本中有任何错误,它将停止请求执行。
编写测试脚本
测试脚本可以使用动态变量,对响应数据执行测试断言,并在请求之间传递数据。在请求的“测试”选项卡中,手动输入您的 JavaScript 或选择代码编辑器旁边的“片段” 。
收到响应后执行测试。当您选择Send时,Postman 在响应数据从 API 返回后运行您的测试脚本。
如果您需要在请求运行之前执行代码,请改用预请求脚本。有关脚本在请求运行时如何执行的更多信息,请参阅脚本简介。
验证响应
要验证请求返回的数据,您可以pm.response在测试中使用该对象。使用函数定义测试pm.test,提供名称和返回布尔值(true或false)的函数,该值指示测试是通过还是失败。使用ChaiJS BDD语法并pm.expect在您的断言中测试响应细节。
该.test函数的第一个参数是将出现在测试结果输出中的文本字符串。使用它来识别您的测试,并将测试的目的传达给查看结果的任何人。
例如,在请求的“测试”200选项卡中输入以下内容以测试响应状态代码是否为:
pm.test("Status test", function () {
pm.response.to.have.status(200);
});
选择发送以运行您的请求并在响应部分打开测试结果。选项卡标题显示通过了多少测试以及总共运行了多少测试。您还可以查看Passed、Skipped和Failed测试结果的数量。
如果请求返回200状态代码,则测试通过。要了解不同状态代码会发生什么情况,请更改测试脚本中的预期状态代码并再次运行请求。
使用 pm.expect 格式化测试结果消息
使用pm.expect语法为您的测试结果消息提供不同的格式。试验替代方案以获得您认为最有用的输出。
使用Intro to writing tests 集合中的Run in Postman按钮将包含一些示例测试脚本的模板导入 Postman 并试验代码。
您的代码可以测试请求环境,如下例所示:
pm.test("environment to be production", function () {
pm.expect(pm.environment.get("env")).to.equal("production");
});
您可以使用不同的语法变体以您认为可读且适合您的应用程序和测试逻辑的方式编写测试。
pm.test("response should be okay to process", function () {
pm.response.to.not.be.error;
pm.response.to.have.jsonBody("");
pm.response.to.not.have.jsonBody("error");
});
您的测试可以使用您为响应数据格式定制的语法来确定请求响应的有效性。
pm.test("response must be valid and have a body", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});
您的脚本可以包含您需要的任意多个测试,并且在您选择Save时将与其余的请求详细信息一起保存。如果您共享集合、发布文档或使用“在 Postman 中运行”按钮,您的测试代码将包含在任何查看或导入您的模板的人中。
使用片段
您可以使用精选的常用测试代码片段列表来编写测试。片段在脚本编辑器的右窗格中可用。选择一个片段会自动将所需的代码添加到您的脚本中,帮助您快速开始测试。添加到脚本后,您可以编辑片段以满足您的特定测试要求。
测试集合和文件夹
您可以将测试脚本添加到集合、文件夹或集合中的单个请求。与集合关联的测试脚本将在集合中的每个请求之后运行。与文件夹关联的测试脚本将在文件夹中的每个直接子请求之后运行。这使您能够在请求后重用通常执行的测试。每个请求的执行顺序将是收集测试,文件夹测试,然后是请求测试。
将脚本添加到集合和文件夹使您能够测试 API 项目中的工作流。这有助于确保您的请求涵盖典型场景,为应用程序用户提供可靠的体验。
您可以通过选择集合或文件夹名称旁边的查看更多操作图标 ,然后选择编辑来更新集合和文件夹脚本。选择“测试”选项卡以添加或更新您的脚本。您还可以在首次创建集合时添加集合脚本。
当您运行一个集合时,集合运行器会显示测试结果,包括以毫秒为单位的响应时间以及有关集合中的特定请求是通过还是未通过其测试的详细信息。
您可以使用分支和循环编写脚本来控制请求的运行顺序。
调试测试
如果您在测试时遇到问题:
- 检查脚本中是否有任何错误。红色徽章将突出显示有错误的脚本。您还可以检查响应部分是否存在特定错误。
- 使用日志语句调试您的测试,以确保您断言正确的数据。
下一步
在 Postman 中编写测试后,您可以编写更复杂的测试并将它们与其他 Postman 实用程序一起使用。
- 有关您可以使用该pm对象执行的操作的更多信息,请查看一些测试脚本示例并访问Postman Sandbox API 参考。
- 要了解如何结合使用测试和监控来确认您的 API 是否满足性能要求,请访问监控您的 API。
- 要了解如何通过在 CI/CD 配置中集成集合运行来自动化测试,请访问与 Travis CI 集成。