2017-07-10 40 views
0

所以我使用Ruby/Cucumber和Appium在我们的Jenkins服务器上构建了每个版本之后运行自动化测试。如果推出新版本,Jenkins强制退出黄瓜脚本

基本上我有一个工作设置,在每次构建成功后运行我们的回归套件。当我的黄瓜测试正在运行并且新版本成功时,我的问题就出现了。

目前詹金斯将用黄瓜脚本启动一系列新的测试,但不会强制旧脚本退出。这导致我所有的黄瓜报告显示多重漏报。有没有办法规定Jenkins在开始一套新的测试之前运行一个退出黄瓜的脚本?

非常感谢你给我的任何帮助。如果您对詹金斯如何专门设立问题有任何疑问,我会向您提供更贴心的细节。

回答

1

技术上Jenkins Job将等待1个工作实例完成,直到它开始另一个工作。所以你不必担心在第一个完成之前开始另一个构建...

现在来到你的问题如果一组新的测试用例想要启动,如何杀死旧的/现有的测试用例。

我会建议有一个清理脚本在你的实际测试触发之前运行,你的测试会触发使用耙或直接黄瓜命令,我猜测。所以在这之前,执行cleanup.sh将执行以下操作:
1)重新启动appium服务器。
2)停止运行红宝石进程。
3)杀死黄瓜运行过程。

脚本应该是这个样子:

kill -9 $(ps -ef | grep \[a]ppium | awk '{print $2}') 
kill -9 $(ps -ef | grep \[r]uby | awk '{print $2}') 
kill -9 $(ps -ef | grep \[c]ucumber | awk '{print $2}') 

# restart appium again 
appium &  

希望它可以帮助!如果遇到问题,请在评论中告知我。:)