Postman Test 脚本编写教程

本文介绍如何编写 Postman Test 脚本,让您更高效地测试和调试 API,帮助你快速上手这个强大的测试工具。

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

Postman Test 脚本编写教程

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

Postman 是一款广泛使用的 API 开发工具。其中,Test 功能是 Postman 的核心功能之一,它可以用来测试 API 的可靠性和准确性。要使用这个功能,需要编写 Test 脚本。那么该如何编写 Postman Test 脚本呢?

什么是 Postman Test 功能?

Test 功能是 Postman 的核心功能之一,它允许用户在发送请求后验证响应是否符合预期,帮助用户测试API的可靠性和准确性,以及确保 API 在不同的环境中都能正常工作。通过使用Test功能,用户可以自动化测试API,从而提高测试效率。

Postman Test 脚本如何编写?

要写 Test 脚本,首先要知道 pm对象,即包含与正在执行的脚本有关的所有信息,并允许访问正在发送的请求的副本或接受到的响应,它还允许获取和设置环境变量和全局变量。Postman 会提供一些常用的脚本用户使用,但如果希望能覆盖更多场景,还是要掌握 pm 函数。

Postman Test 脚本编写教程
Postman Test 脚本

Postman 的 Test 校验主要用于测试断言校验,帮助快速判断结果。主要用到的函数如下:

方法描述
pm.test("testName", specFunction)用于创建一个测试。
pm.expect(assertion:*)用于处理来自响应或变量的数据断言。

举个例子:

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("DONE");
});

其中,响应断言包含:

pm.response.to

方法描述
pm.response.to.have.status(code:Number)根据状态码判断响应是否成功
pm.response.to.have.status(reason:String)根据返回的状态值判断响应是否成功
pm.response.to.have.header(key:String)根据 response 中的 headers 的 key 判断响应是否成功
pm.response.to.have.header(key:String, optionalValue:String)对 response 中的 header 中的 key 和 value 校验,判断响应是否成功
pm.response.to.have.body()获取响应返回的资源
m.response.to.have.body(optionalValue:String)对响应返回的 body 内容校验,判断响应是否成功
pm.response.to.have.body(optionalValue:RegExp)判断响应返回的 body 是否是 json,判断响应是否成功

举个例子:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");
});

pm.test("Body", function () {
    pm.response.to.have.body();
});
Postman Test 脚本编写教程

其他方法

pm.info 对象

方法描述
pm.info.eventName输出脚本是在哪个脚本栏中执行的
pm.info.iteration输出当前运行迭代的次数(从0开始)
pm.info.iterationCount输出计划运行的迭代总数
pm.info.requestName返回请求名
pm.info.requestId返回请求 ID

pm.globals 对象

方法描述
pm.globals.has("variableName")验证是否存在该全局变量
pm.globals.get("variableName")获取执行全局变量的值
pm.globals.set("variableName","variableValue")设置全局变量
pm.globals.unset("variableName")清除指定的全局变量
pm.globals.clear()清除全部全局变量
pm.globals.toObject()将全局变量以一个对象的方式全部输出

pm.environment 对象

方法描述
pm.environment.has("variableName")检测环境变量是否包含某个变量
pm.environment.get("variableName")获取环境变量中的某个值
pm.environment.set("variableName","variableValue")为某个环境变量设置值
pm.environment.unset("variableName")清除某个环境变量
pm.environment.clear()清除全部环境变量
pm.environment.toObject()将环境变量以一个对象的方式全部输出

pm.variables对象

方法描述
pm.variables.get("variableName")获取变量中的某个值(迭代数据<环境变量<全局变量)

pm.request 对象

方法描述
pm.request获取当前发起请求的全部 headers(参数只可读)
pm.request.url获取当前发起请求的 url
pm.request.headers以数组的方式返回当前请求中的 header 信息

pm.response 对象

方法描述
pm.response.code获取当前请求返回的状态码如200,404,500等
pm.response.reason()当前请求成功返回 OK
pm.response.headers以数组的形式返回当前请求成功后的 response 的 headers
pm.response.responseTime获取执行此次请求的时间单位为 ms
pm.response.text()以文本的方式获取响应里面的 body的内容
pm.response.json()将 body 里面的内容解析为一个 json对象

pm.cookies 对象

方法描述
pm.cookies.has("cookieName")检查请求的 url 站点是否存在 cookie,返回值 Boolean
pm.cookies.get("cookieName")获取存在的 cookie 的值
pm.cookies.toObject将请求的 url 站点中获取到的所有存在的 cookie 输出到一个对象中去

pm.iterationData 对象

方法描述
pm.iterationData.get("variable")获取指定变量的值
pm.iterationData.toObject将数据文件集转化成一个对象

总结

Postman Test 脚本功能可以帮助用户更加灵活地测试 API 的可靠性和准确性,提高测试的效率和准确性,帮助用户快速编写测试用例,并对 API 进行全面的测试。更多内容可以前往 Postman 官方文档查看。

但是 Postman 官方的文档并没有详细介绍每个函数的使用示例,但我发现 Apifox 有详细的文档展示https://www.apifox.cn/help/app/scripts/examples/tests/

Postman Test 脚本编写教程
Apifox

Apifox Test 校验功能与 Postman 是一致的,甚至在会有更详细的断言结果展示与示例脚本。Apifox 详细为每个断言请求举实例帮助用户理解。Apifox 是在 Postman 基础上进行了能力升级,能解决使用 Postman 后会出现的在多个工具之间频繁切换导致数据不一致的问题。

Postman Test 脚本编写教程

如果你对于 Postman 的 Test 校验功能不太熟悉,那么 Apifox Test 校验可以帮助你快速掌握 Test 校验功能,它可以帮助您快速检测问题并提高开发效率。免费使用,赶紧试试吧,点击免费使用

Apifox
Apifox

知识扩展:

了解更多 Postman 相关使用技巧: