想在jenkins中,自动定时启动appium服务,shell命令已准备如下:
BUILD_ID=dontKillMe
ps -ef |grep appium |grep -v grep |awk '{print $2}' |xargs kill -
echo "" > appium.log
nohup appium --address 127.0.0.1 --port --session-override --platform-name Android --platform-version --automation-name Appium --log-timestamp --local-timezone --no-reset >> appium.log >&&
其中,nohup 是后台启动命令
清理进程: ps -ef |grep appium |grep -v grep |awk '{print $2}' |xargs kill -9 如果appium服务已经启动,就杀死该进程
appium服务:appium --address 127.0.0.1 --port 4723 --session-override --platform-name Android --platform-version 25 --automation-name Appium --log-timestamp --local-timezone --no-reset
保存为日志文件:>> appium.log
2>&1 错误日志也输入appium.log文件
最后一个 & :把命令丢在后台执行
在jenkins执行后,无法启动appium。是由于jenkins执行完命令后,又马上杀死这个命令进程,需要添加一行命令:BUILD_ID=dontKillMe
jenkins执行下构建,在构建目录会生成一个appium.log 目录,appium服务运行的日志都保存在这个文件中。
如果出现jenkins 执行shell 无法启动,那就把上面的命令保存为shell .sh脚本,在jenkins 执行该脚本也能正常启动appium
有时候appium 还没有启动就开始执行测试用例,导致用例执行不成功,最后加了个while循环,确认下appium 启动成功后再执行用例,
#!/bin/bash
ps -aef |grep appium
rm -rf appium.log
touch appium.log appium_log_content=`cat appium.log`
while [ ${#appium_log_content} -le ]; do
appium_log_content=`cat appium.log`
/Users/pub_pawf_autotest/autoconf/bin/start_appium.sh
echo "appium still not started!"
sleep
done
ps -aef |grep appium
cat appium.log
sleep
jenkins执行启动结果如下:
构建中 在工作空间 /Users/pub_pawf_autotest/.jenkins_8090/workspace/start_appium 中
[start_appium] $ /bin/bash /Users/pub_pawf_autotest/env/apache-tomcat-8.5.30-8090/temp/jenkins4264455098456018568.sh
1400560847 19226 1 0 4:41下午 ttys001 0:02.09 node /usr/local/bin/appium --address 127.0.0.1 --port 4723 --session-override --platform-name Android --platform-version 25 --automation-name Appium --log-timestamp --local-timezone --no-reset
1400560847 19280 19278 0 4:42下午 ttys001 0:00.00 grep appium
appium still not started!
appium still not started!
1400560847 19317 1 0 4:42下午 ttys001 0:01.91 node /usr/local/bin/appium --address 127.0.0.1 --port 4723 --session-override --platform-name Android --platform-version 25 --automation-name Appium --log-timestamp --local-timezone --no-reset
1400560847 19322 19278 0 4:42下午 ttys001 0:00.00 grep appium
Finished: SUCCESS