• Jenkins平台上运行Appium工程报错:java.lang.RuntimeException: 不存在android或者iOS测试设备


    【问题背景】
    在Mac使用本地终端用  java -jar target/XXX-1.0-SNAPSHOT.jar 命令跑工程,可以!
    但是在Jerkins平台上,就不行,报错:
     
    + java -jar target/XXX-1.0-SNAPSHOT.jar
    java.lang.RuntimeException: 不存在android或者iOS测试设备
            at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.getDevices(AppiumDeviceManager.java:94)
            at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.<init>(AppiumDeviceManager.java:32)
            at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.getInstance(AppiumDeviceManager.java:75)
            at com.XXX.tool.Run.getDeviceQueue(Run.java:217)
            at com.XXX.tool.Run.dispersedRun(Run.java:54)
            at com.XXX.YYY.Run.main(Run.java:27)
        
    查找问题:
    1、检查Jenkins上的ADB是否能执行:
        1.1)需要在Jenkins配置文件的执行Shell处加上一句:adb devices,看看能不能打出来设备信息。
             (因为在本地的终端执行adb devices是可以打出来设备信息的!)

      

    1.2)果然,在Jenkins执行这一句adb devices时,报错了…… “ jenkins: line 8: adb: command not found

     所以ADB有问题,查找下:

    王导发的链接: [Jenkins] 配置任务中的坑s
    ——但是解决了两个小时还是没有解决出来啊!!!
     
     
    尝试解决:
    1、在Jenkins配置ANDROID_HOME的环境变量
    因为连接的是Android手机,Jerkins在使用ADB时需要在Jerkins配置ANDROID_HOME的环境变量的。
    配置路径:Jenkins --> Manage Jerkins --> Configure System  --> 全局属性  --> Environment variables:

    ——设置好之后,去重新跑工程,还是报错:“adb: command not found

    2、在工程的Execute shell 中加第一行脚本(要放在最前面第一行)
    来使Jenkins加载环境变量
    1)尝试加上“#!/bin/bash”(注意 #!/ 之前不要有空格)
    ——还是报错:“adb: command not found”
    2)尝试加上“#!/bin/bash -ilex”(注意 #!/ 之前不要有空格)
    ——还是报错:“adb: command not found”
    3)尝试加上“#!/bin/bash -il”(注意 #!/ 之前不要有空格)
    ——还是报错:“adb: command not found”
    4)尝试加上“source /etc/profile”
    ——还是报错:“adb: command not found”,Build step 'Execute shell' marked build as failure
    5)尝试加上“source /Users/XXX/.zshrc”(因为我的所有环境变量配置是在 .zshrc文件中的)
    ——加载了一大堆东西之后报错:
    +++ autoload -U compaudit compinit
    /Users/crgt/.oh-my-zsh/oh-my-zsh.sh: line 23: autoload: command not found
    Build step 'Execute shell' marked build as failure
    3、没有办法,前去求助王导。
    向其说明,我的所有环境变量都是配置在.zshrc文件中的,所以用了 source /Users/XXX/.zshrc,但是不行。
    但是把.zshrc文件里面的环境变量内容都拷贝复制放到.bash_profile 中,

      

     

      

     然后在 中,第一行命令用:source ~/.bash_profile  。居然可以了!!!!!

    所以Jerkins居然读不到.zshrc文件,而是只能读.bash_profile,来读取环境变量的配置的!!
     
      

     第一次成功是build #45号,一台安卓机跑了一个半小时+。

     
     
     
     
    【Reference】
    1、 [Jenkins] 配置任务中的坑s  (帮助排查问题、解决问题)
    2、Jenkins build failed due to missing android SDK  (被Accept的答案也就说在Jerkins上配置Android_Home环境变量而已)
     
     
    可以参考的文章:
    2、使用jenkins自动化构建android和ios应用  (有讲述应用背景!)
  • 相关阅读:
    Codeforces Round #296 (Div. 2B. Error Correct System
    实验十二 图的建立与遍历
    1561: (More) Multiplication
    1562: Fun House
    hdu 2203 亲和串
    hdu 3549Flow Problem
    poj 2182 Lost Cows
    poj 3468A Simple Problem with Integers
    hdu1698 Just a Hook
    栈和队列的面试题Java实现
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/14470561.html
Copyright © 2020-2023  润新知