jenkins启动appium服务

摘要:
因为Jenkins在执行命令后立即终止了命令进程,所以需要添加一行命令:BUILD_ID=dontKillMejenkins。appium将在构建目录中生成。日志目录和appium服务的运行日志保存在此文件中。如果jenkins执行shell无法启动,请将上述命令保存为shell。当jenkins执行脚本时,sh脚本也可以正常启动。有时,appium在启动之前就开始执行测试用例,导致用例执行失败。最后,添加了一个while循环,以确认appium在执行case之前成功启动。#!“Sleepdoneps aef|grepappiumdatappium。logsleep2jenkins执行和启动结果如下:[start_appium]在工作区/Users/pub_pawf_automatic/中。jenkins_8090/workspace/start_appium在构建期间$/bin/bash/Users/pub_pawf_Autotest/env/apache-tomcat-8.5.30-8090/temp/jenkins42644509845018568.sh140056084719226104:41 p.m.ttys010:02.09node/usr/local/bin/appendix-address127.0.0.1--port4723--会话覆盖--平台名称Android--平台版本25--自动化名称App--日志时间戳--本地时区--无reset1400560847192801927804:42 p.m.ttys010:00.00仍未启动!

想在jenkins中,自动定时启动appium服务,shell命令已准备如下:

BUILD_ID=dontKillMe
ps -ef |grep appium |grep -v grep |awk '{print $2}' |xargs kill -9 
echo "" > appium.log
nohup 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&

其中,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 666 ]; do
    appium_log_content=`cat appium.log`
    /Users/pub_pawf_autotest/autoconf/bin/start_appium.sh
    echo "appium still not  started!"
    sleep 2
done 
ps -aef |grep appium
cat appium.log
sleep 2

 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

免责声明:文章转载自《jenkins启动appium服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇聪明的老板,都懂得让人占便宜(经典)CentOS 7下安装Nextcloud搭建个人网盘下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

libvlc外部api的简单整理(转载)

libvlc.h 定义了libvlc的外部api,引用这个头文件就可以把VLC嵌入到我们的程序里面了。 libvlc的对象必须先被初始化之后才能被使用。 libvlc core libvlc_new() 用于初始化一个libvlc的实例,argc表示参数的个数,argv表示参数,返回创建的实例若当发生错误时返回NULL libvlc_release(...

Jenkins学习之——(2)插件的安装

本章节将讲解如何安装jenkins的插件。 其实jenkins本身不具有任何集成的功能,而是依靠众多的插件实现功能。就像eclipse一样,期本身只是一个编辑器,而当你安装了其他的第三方插件后,就能实现很多强大的功能。 插件的安装过程很简单,就直接上图了 1. 2. 3. 这里面选择要安装的插件啊,然后点击底部的直接安装就行了。 有时候网络安装会出问...

记录IDEA回退,远程库未回退问题

在使用IDEA的reset时,会出现本地代码虽然回退了,但是远程代码库并未回退到对应的版本。简单说,本地回退了,远程库未回退。这时候我们就需要使用命令行操作方式了。 1、在log上找到要恢复的版本号 使用git log查看需要恢复到的版本号。拿到git log version版本号。 git log git log 2、在客户端执行如下命令(执行...

zabbix利用percona-toolkit工具监控Mysql主从同步状态

一、下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等。 [root@push-5-221 src]# cd /usr/local/src/ [root@push-5-221 src]# wget https://www.pe...

Python+Appium学习篇之WebView处理

1.认识WebView 实例说明: 当你打开百度阅读APP→VIP全站去广告→用自带的 UI Automator去定位里面的元素,如图: 不管你去定位  '规则详情'  '开通'等等,都会定位不到,只能显示一个整体页面,这个就是WebView Note: ① 可以理解与selenium里的iframe类似 ②在右边定位里有明确的表示是 WebView ③...

【转载】Iptables详解

参考链接:http://blog.csdn.net/reyleon/article/details/12976341 Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 L...