newman CLI returns "error: unable to get local issuer certificate" in teamcity build

newman CLI returns "error: unable to get local issuer certificate" in teamcity build

使用 newman nodeJS CLI 运行 邮递员测试集合我得到以下错误:

error: unable to get local issuer certificate

它是 运行 作为 Teamcity CI 使用以下命令构建的一部分:

newman run https://www.getpostman.com/collections/<COLLECTION-ID-HERE>

运行 在 windows 上,我们有一个企业代理服务器 (ZScaler)。

如何让新人上班?

问题是 newman 找不到(或不知道)在 windows 证书存储中配置的代理服务器使用的自签名 SSL 证书。让 newman(实际上是任何最新的 nodeJS 应用程序)知道证书的最简单方法是使用环境变量:

在 windows 上:

SET NODE_EXTRA_CA_CERTS=c:\some-folder\certificate.cer

在 linux 上:

export NODE_EXTRA_CA_CERTS=/c/some-folder/certificate.cer

您可能还需要使用 HTTP_PROXY=http://example.com:1234 env 变量设置代理服务器 url 本身。

或者,可以使用 build parameters feature of Teamcity

将环境变量添加到 teamcity 构建运行时环境

注意这是针对 Node.js 7.3.0 及更高版本(以及 LTS 版本 6.10.0 和 4.8.0)

只需在 collectionID 前添加 --insecure 即:

newman 运行 https://www.getpostman.com/collections/?apiKey="your-Postman-Api-Key" --insecure

此外,当使用 json 文件触发执行时,只需添加 --insecure 所以您的命令应为:

newman 运行 .postman_collection.json --insecure