Postman 的 Tests 是在发送请求后自动执行的脚本,用于验证请求的响应是否符合预期。Tests 可以使用 JavaScript 编写,并且提供了一组预定义的断言函数,用于检查响应的各个方面,如状态码、响应体内容、响应时间等。
Tests 脚本可以针对每个请求单独编写,也可以在 Postman 的 Collection 或 Folder 级别上共享。在 Postman 中编写 Tests 的步骤如下:
1.在 Postman 中新建接口
打开 Postman,创建或打开一个请求,在请求编辑器的顶部导航栏中选择 "Tests" 选项卡,在 "Tests" 标签页中,你可以编写 JavaScript 代码来验证请求的响应。
2.在 Tests 中编写脚本
可以使用预定义的断言函数来检查响应的各个方面,例如 pm.response.to.have.status()
来检查状态码,pm.response.to.have.jsonBody()
来检查 JSON 响应体等。以下是一个简单的示例,演示如何编写一个基本的 Tests 脚本来验证响应的状态码:
// 检查响应的状态码是否为 200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
3.发送请求,验证结果
编写完 Tests 后,点击 "Send" 按钮发送请求,Tests 将会自动执行,并在 "Test Results" 面板中显示结果。
除了验证状态码之外,还有许多其他常见的 Tests 脚本,用于验证请求的各个方面。以下是一些常见的 Tests 脚本示例:
1.检查响应体中是否包含特定字段:
pm.test("Response body contains expected field", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('field_name');
});
2.检查响应时间是否在预期范围内:
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
3.检查响应头是否包含特定的信息:
pm.test("Response header contains expected value", function () {
pm.response.to.have.header('header_name');
});
4.检查响应体的特定字段值是否符合预期:
pm.test("Response body field has expected value", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.field_name).to.eql('expected_value');
});
5.检查响应体是否符合特定的 JSON 结构:
pm.test("Response body has expected JSON structure", function () {
pm.response.to.have.jsonBody('json_schema');
});
6.检查响应体中数组的长度是否符合预期:
pm.test("Response body array has expected length", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.array_name).to.have.lengthOf(3);
});
这些是一些常见的 Tests 脚本示例,你可以根据具体的测试需求编写自定义的 Tests 脚本。在编写 Tests 脚本时,建议参考 Postman 官方文档以获取更多关于预定义断言函数和测试技巧的信息。
比 Postman 更好用的工具:Apifox
在 Apifox 中进行一些数据的提取或者断言的时候,可以通过可视化的方式来操作,省去了编写脚本的麻烦,比 Postman 方便很多。
比如你要将下面这个接口返回数据中的 timestamp 字段提取到环境变量中,只需要打开 Apifox,然后在接口的【后置操作】中选择【提取变量】。
{
"code": "0",
"data": {
"timestamp": "1708499514"
},
"message": "success"
}
接着添加 JSONPath 表达式 $.data.timestamp
,最后发送请求即可。一个表达式搞定,不需要再编写什么 JavaScript 脚本了,快去试试吧!
总结
Postman 的 Tests 是用于验证请求响应是否符合预期的自动执行脚本,使用 JavaScript 编写,并提供预定义的断言函数检查各个方面。Tests 可针对每个请求或在 Collection/Folder 级别共享编写。除了验证状态码,还可检查响应体、响应时间、响应头、字段值等。Apifox 是比 Postman 更方便的工具,通过可视化操作实现数据提取和断言,避免了脚本编写麻烦,推荐使用。
知识扩展: