如何在 CI 环境中运行 postman 的 newman?

Posted

技术标签:

【中文标题】如何在 CI 环境中运行 postman 的 newman?【英文标题】:How do I run postman's newman in CI environment? 【发布时间】:2016-09-24 19:21:09 【问题描述】:

我想在我的 CI 环境 (solano-ci) 上运行 newman

newman 是一个通过邮递员集合中的请求运行的工具。

我的package.json 中有一个newman 脚本,我还有一个npm start 脚本,它在localhost:3000 启动服务器。

newman 已配置环境变量以测试端口 localhost:3000 上的端点。

问题是我需要一个脚本来启动服务器 (npm start) 然后运行 ​​npm run newman。但是在服务器可用和newman 运行它的测试之间存在延迟。如果newman 在服务器可用之前运行,则每次测试都会出错。

Error: connect ECONNREFUSED 127.0.0.1:3000

现在这是我尝试使用run-p 的方法,它可以并行启动两个进程。然后我必须使用sleep 并设置任意数量的等待时间以确保服务器准备就绪。

"newman": "newman -c ./postman/api.postman_collection.json -e ./postman/local.postman_environment.json",
"newman-sleep": "sleep 10 && npm run newman",
"newman-server": "run-p start newman-sleep"

【问题讨论】:

【参考方案1】:

您可以使用wait-on 包。

npm install --save-dev wait-on

那么,

"newman-sleep": "wait-on http://localhost:3000 && npm run newman"

【讨论】:

以上是关于如何在 CI 环境中运行 postman 的 newman?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Postman 集合和测试与 CI 流中的 swagger/open api 规范和 git 保持同步

如何在预请求脚本中更改 Postman 环境?

Postman-CI集成Jenkins

在 NodeJS 中运行 Postman Newman 时使用测试修改环境

在Postman中如何设置环境变量?

Postman-CI集成Jenkins