如何让 Postman/Newman 在经过一定时间后无法通过测试?
How to make Postman/Newman to fail a test after certain time has passed?
所以,在我的集合中,我有大约十个请求,最后两个是:
/Wait 10 seconds
/Check Complete
第一个是调用邮递员的回声(延迟 10 秒),第二个是调用我的系统以检查状态是否完成。现在,如果状态不可用,我再等 10 秒:
postman.setNextRequest("Wait 10 seconds");
我系统上的完整状态会在一分钟左右出现。现在,正如您所看到的那样 - 如果系统出现问题并且状态永远不会完成,这将是一个无限循环。例如,如果 postman/newman 测试已经进行了超过 2 分钟,有没有办法让测试失败。
此外,这将在 jenkins 中使用命令行执行,所以我并没有真正研究 postman 设置或运行器中请求之间的延迟。
如果您打算使用 Jenkins 管道,您可以使用超时 step 来导致长时间的 运行 作业失败,这里持续 2 分钟。
timeout(120) {
node {
sh 'newman command'
}
}
查看 Jenkins 中的“Pipeline Syntax”编辑器以生成您的代码块并寻找其他有用的功能。
您可以在此处查看纽曼选项:https://www.npmjs.com/package/newman#newman-run-collection-file-source-options。有趣的选项是
--timeout-request :它一定会满足您的需求。
在 Postman 本身,您可以测试 responseTime。我记得右边有一个片段,看起来像这样:
tests["Response time is less than 200ms"] = responseTime < 200;
如果在请求的时间内没有响应,这可能会帮助您测试失败。
亚历山大
所以,在我的集合中,我有大约十个请求,最后两个是:
/Wait 10 seconds
/Check Complete
第一个是调用邮递员的回声(延迟 10 秒),第二个是调用我的系统以检查状态是否完成。现在,如果状态不可用,我再等 10 秒:
postman.setNextRequest("Wait 10 seconds");
我系统上的完整状态会在一分钟左右出现。现在,正如您所看到的那样 - 如果系统出现问题并且状态永远不会完成,这将是一个无限循环。例如,如果 postman/newman 测试已经进行了超过 2 分钟,有没有办法让测试失败。
此外,这将在 jenkins 中使用命令行执行,所以我并没有真正研究 postman 设置或运行器中请求之间的延迟。
如果您打算使用 Jenkins 管道,您可以使用超时 step 来导致长时间的 运行 作业失败,这里持续 2 分钟。
timeout(120) {
node {
sh 'newman command'
}
}
查看 Jenkins 中的“Pipeline Syntax”编辑器以生成您的代码块并寻找其他有用的功能。
您可以在此处查看纽曼选项:https://www.npmjs.com/package/newman#newman-run-collection-file-source-options。有趣的选项是 --timeout-request :它一定会满足您的需求。 在 Postman 本身,您可以测试 responseTime。我记得右边有一个片段,看起来像这样:
tests["Response time is less than 200ms"] = responseTime < 200;
如果在请求的时间内没有响应,这可能会帮助您测试失败。
亚历山大