Postman 的 Tests 是什么?怎么写?

Postman 的 Tests 是用于验证请求响应是否符合预期的自动执行脚本,使用 JavaScript 编写,并提供预定义的断言函数检查各个方面。Tests 可针对每个请求或在 Collection/Folder 级别共享编写。除了验证状态码,还可检查响应体、响应时间、响应头、字段值等。

用 Apifox,节省研发团队的每一分钟

Postman 的 Tests 是什么?怎么写?

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

Postman 的 Tests 是在发送请求后自动执行的脚本,用于验证请求的响应是否符合预期。Tests 可以使用 JavaScript 编写,并且提供了一组预定义的断言函数,用于检查响应的各个方面,如状态码、响应体内容、响应时间等。


Tests 脚本可以针对每个请求单独编写,也可以在 Postman 的 Collection 或 Folder 级别上共享。在 Postman 中编写 Tests 的步骤如下:

1.在 Postman 中新建接口

打开 Postman,创建或打开一个请求,在请求编辑器的顶部导航栏中选择 "Tests" 选项卡,在 "Tests" 标签页中,你可以编写 JavaScript 代码来验证请求的响应。

Postman 的 Tests 是什么?怎么写?

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" 面板中显示结果。

Postman 的 Tests 是什么?怎么写?


除了验证状态码之外,还有许多其他常见的 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"
}
Postman 的 Tests 是什么?怎么写?


接着添加 JSONPath 表达式 $.data.timestamp,最后发送请求即可。一个表达式搞定,不需要再编写什么 JavaScript 脚本了,快去试试吧!

Postman 的 Tests 是什么?怎么写?

总结

Postman 的 Tests 是用于验证请求响应是否符合预期的自动执行脚本,使用 JavaScript 编写,并提供预定义的断言函数检查各个方面。Tests 可针对每个请求或在 Collection/Folder 级别共享编写。除了验证状态码,还可检查响应体、响应时间、响应头、字段值等。Apifox 是比 Postman 更方便的工具,通过可视化操作实现数据提取和断言,避免了脚本编写麻烦,推荐使用。

Apifox

知识扩展: