想在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

jenkins启动appium服务的更多相关文章

  1. appium--python启动appium服务

    前戏 前面我们都是在cmd下通过输入appium加端口号来启动服务的,在我们做自动化的时候,我们当然不希望我们手动启动appium服务,而是希望通过脚本自动启动appium服务. 我们可以使用subp ...

  2. 通过代码启动appium服务

    如果选择npm安装的最新版appium 1.8.0以上版本,启动appium的时候,你会发现无法使用Node.js命令 这里给出两种方法来启动appim: 方法一: /** * 使用AppiumSer ...

  3. 命令行启动appium服务

    Android终端 appium --avd test -a 127.0.0.1 -p 4723 --language "zh_CN" --locale "CN" ...

  4. Appium+Python app自动化测试之脚本启动和停止Appium服务

    研究了一段时间的Appium android app的自动化测试,工作中需要连接多台手机终端同时执行测试用例,我实现的方式是获取用例中需要执行用例的设备id个数以及实际连接到的设备数(通过adb de ...

  5. 启动多个appium服务(同时运行多台设备)

    准备: 一台真机一台模拟器(使用的是“夜神模拟器”) 先查看是否检测到设备  adb devices    由上图可看出没有检测到模拟器(夜神模拟器已开启) 可通过以下配置完成: 第一步:找到adb的 ...

  6. appium+python自动化60-windows上同时启动多个appium服务,让多个android机器并行运行

    前言 做android自动化的时候,启动一个appium服务,只能匹配一个手机去自动化执行.有时候想同一套代码,可以在不同的手机上执行,测下app在不同手机上兼容性. 这就需要启动多个appium服务 ...

  7. Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

    简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听宏哥一一道来. 一睹为快 其实相当的简单,不看不知 ...

  8. Appium+python自动化(三十六)- 士兵突击许三多 - 多个appium服务启动,多个设备启动,多进程并发启动设备-并发测试 - 上(超详解)

    简介 前面课程只是启动了单个appium服务,只能控制单台设备.如果需要针对多台设备测试那么该如何处理?而且发现群里的小伙伴们也在时不时地在讨论这个问题,想知道怎么实现的,于是宏哥就决定写一片这样的文 ...

  9. Appium+python自动化(三十七)- 士兵突击许三多 - 多个appium服务启动,多个设备启动,多进程并发启动设备-并发测试 - 下(超详解)

    简介 接着上一篇继续看一下如何并发测试以及并发测试的过程中,可能遇到的问题,在这里宏哥把宏哥遇到的和小伙伴或者童鞋们,一起分享一下. Appium端口检测 问题思考 经过前面学习,我们已经能够使用py ...

随机推荐

  1. Android View的事件分发机制

    准备了一阵子,一直想写一篇事件分发的文章总结一下.这个知识点实在是太重要了. 一个应用的布局是丰富的,有TextView,ImageView,Button等.这些子View的外层还有ViewGroup ...

  2. 使用Flask+MongoDB实现基于REST的接口简单操作

    目录 前言 1 准备工作 2 具体实现 前言 最近在捣鼓如何使用阿里云服务器搭建一个简单的基于Flask框架的后端接口,刚开始为了图方便,就直接买了一个Windows Server 2008系统服务器 ...

  3. Redis问题MISCONF Redis is configured to save RDB snapshots....

    Redis问题MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on di ...

  4. percona-xtrabackup系列一:简单使用

    1:什么是percona-xtrabackup Percona XtraBackup is an open-source hot backup utility for MySQL -based ser ...

  5. Android短轮询解决方案——CountDownTimer+Handler

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7657194.html 一:应用场景 在诸如自动售卖机之类的扫码支付场景中,客户端在获得支付二维码或者发出支付请 ...

  6. android ndk native错误分析方法

    使用ndk自带的工具进行分析, /mnt/d/Projects/linuxEnv/env/toolchains/aarch64-linux-android-4.9/bin/aarch64-linux- ...

  7. spring mvc简单的demo(注解版)

    tomcat配置文件:web.xml <?xml version="1.0" encoding="UTF-8"? > <web-app ver ...

  8. 【DB2】数据迁移

    数据迁移概述 在日常生活中常有数据的导入导出,为此db2提出了很多工具可以选择,export.import.load.db2look.db2move.db2dart,如下图所示: a.最上面虚线框部分 ...

  9. python之模块chunk,了解即可

    # -*- coding: utf-8 -*-#python 27#xiaodeng#python之模块chunk# chunk模块专用于读取TIFF格式的文件,打开应当使用二进制模式 #TIFF:标 ...

  10. How to get the value of a form element : check box and radio button

    Getting a radio element and it’s checked value Radio buttons in a form can be grouped together using ...