如何通过jenkins启动appium

jenkins中shell是按照shell的顺序依次执行的,每次拿到一个shell的返回值才会进行下一项,如果通过appium命令行启动必然进入不了其他shell继续执行测试。由于jenkins本身会杀死衍生出来的进程,所以通过nohup启动appium也会被杀掉。

通过如下方法解决

在jenkins的第一个Execute shell中填写

#!/bin/bash
ps -aef |grep appium
rm -rf appium.log
touch appium.log

appium_log_content=`cat appium.log`
while [ ${#appium_log_content} -le 666 ]; do
    appium_log_content=`cat appium.log`
    bash startAppium.sh
    echo "appium still not  started!"
    sleep 2
done 
ps -ef |grep appium
cat appium.log
sleep 2

在项目的根目录增加startAppium.sh脚本,脚本内容如下:

nohup node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js >>appium.log 2>&1 &

中间执行测试用例,结尾处安全退出。增加Execute shell:
ps aux |grep appium |grep -v grep |awk '{print $2}' |xargs kill -9

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容