如何通过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

你可能感兴趣的:(如何通过jenkins启动appium)