Postman使用_Tests Script(断言测试)

断言测试可以在Collection、Folder和Request的 pre-request script 和 test script中编写,测试脚本可以检测请求响应的各个方面,包括正文、状态代码、头、cookie、响应时间等,只有测试符合自定义的要求后才能通过。

pm对象提供了测试相关功能:

  • pm.test(testName:String, specFunction:Function):Function:测试函数
  • pm.expect(assertion:*):Function → Assertion:允许在响应数据上做测试,使用ChaiJS expect BDD语法

注意:可以使用pm.response.to.have.*和pm.response.to.be.*来构建断言。

示例如下图:

查看测试执行结果

测试状态码

js 复制代码
pm.test("请求状态码200", function() {
  pm.response.to.have.status(200); 
});
js 复制代码
pm.test("请求状态码200", function() {
  pm.expect(pm.response.code).to.eql(200); 
});

测试响应时间

js 复制代码
pm.test("请求响应时间少于200ms", () => {
  pm.expect(pm.response.responseTime).to.be.below(200); 
});

是否满足指定条件

js 复制代码
tests["字符串asdf包含a字符"] = "asdf".includes("a"); //旧的语法(已弃用,不推荐使用)

多断言组合测试

测试脚本也可以包含多个断言作为单个测试,可以将相关断言组合在一起。如果包含的任一个断言失败,整个测试将失败,所有断言都必须成功,测试才能通过。

js 复制代码
pm.test("The response has all properties", () => {
  const responseJson = pm.response.json(); //将响应体body转换成JSON格式
  pm.expect(responseJson.type).to.eql('vip'); // type等于vip
  pm.expect(responseJson.name).to.be.a('string'); // name值的类型为string类型
  pm.expect(responseJson.id).to.have.lengthof(1); // id的长度为1
}
相关推荐
测试开发技术15 分钟前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
软件测试·人工智能·测试工具·接口测试·agent·抓包
泽众云测试19 小时前
国产化替代国外性能测试工具推荐:泽众PerformanceRunner
软件测试·测试工具·性能测试
墨云安全1 天前
自动化渗透测试工具有哪些?2026 年引擎原理、任务编排与误报抑制实践
git·测试工具·网络安全·渗透测试·自动化
芝麻馅汤圆儿1 天前
sfnt-pingpong -测试网络性能和延迟的工具
测试工具
ck0135792 天前
图片抠图怎么做?从背景去除到透明 PNG 的实用教程
人工智能·测试工具·音视频·媒体·视频
LT10157974442 天前
2026年国内有哪些好用的性能测试工具?
测试工具
技术人生0012 天前
Selenium 工程化模板(日志+异常截图,可直接复制使用)
python·selenium·测试工具
ck0135792 天前
视频转 GIF 的基本流程与文件大小优化
前端·测试工具·html·音视频·视频
菜鸟阿达3 天前
Postman 有哪些免费/开源的替代品?2026 年接口工具选型参考
测试工具·开源·postman
菜鸟阿达3 天前
我把 API 调试工具做成了浏览器版“Postman“,开源了:HTTP/SSE/WebSocket 全能测
http·开源·postman