在Jenkins上使用newman运行多个邮递员收藏

时间:2019-08-06 19:09:54

标签: jenkins-pipeline postman jenkins-groovy newman

我在Jenkins Pipeline作业中使用以下命令:

sh "postman-combine-collections -f *.postman_collection.json -o out.collection.json"

sh "newman run out.collection.json -e apigee-${params.Environment}-environment.postman_environment.json"

它始终只运行第一个集合。

我正在使用Postman-combine-collections v1.1.0。

谢谢!

1 个答案:

答案 0 :(得分:1)

在尝试两次运行newman时,我遇到了同样的问题。我想使用两个不同的环境文件。如果newman失败退出(退出代码!= 0),则Jenkins作业将停止。

如果使用-x(-suppress-exit-code),则执行第二次运行。不幸的是,这种方式将第一次运行的退出代码设置为0。第一次运行失败的测试不会使Jenkins作业失败。

这是我的解决方法:

sh """
    set +e

    newman run collection.json -e environment01.json
    if [ $? != 0 ]
    then
        newman run collection.json -e environment02.json
        exit 1
    else
        newman run collection.json -e environment02.json
    fi
"""

通过明确定义“ set + e”,詹金斯继续失败。如果第一次运行的退出代码不为零,则无论第二次运行得到什么结果,Jenkins都会以返回代码1退出。如果第一次运行成功,则第二次运行将确定Jenkins作业的结果。