zoukankan      html  css  js  c++  java
  • jenkins启动appium服务

    想在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
  • 相关阅读:
    [iOS 主要框架的总结]
    [无线传感器 网络中的节点定位技术]
    [JAVA 多种方式读取文件]
    [IOS swift对比oc]
    [IOS 静态库]
    [U3D 导出Xcode工程包,用Xcode给U3D脚本传递参数]
    [U3D 添加大地、天空,用第一视角看看自己做的世界]
    [U3D 画起重机,绑脚本和控制它运动的基本操作]
    Flutter 国际化适配
    Error:Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Coul完美解决
  • 原文地址:https://www.cnblogs.com/testway/p/9055673.html
Copyright © 2011-2022 走看看