美文网首页
Android自动化 -- Appium环境搭建

Android自动化 -- Appium环境搭建

作者: h080294 | 来源:发表于2017-09-12 14:46 被阅读229次

    Appium的搭建有两种方式:
    1、使用Appium gui,直接下载appium.dmg
    2、使用Terminal命令行安装(强烈推荐)

    一、使用Appium gui

    1、下载Appium客户端
    https://bitbucket.org/appium/appium.app/downloads/
    (这里需要自备梯子,极其难以下载)
    2、安装完后运行appium-doctor检查配置项


    然后会看到一大堆的报错,一一来解决就行。主要是JAVA_HOME、ANDROID_HOME、APPIUM_HOME、Xcode Command Line Tools、Carthage等等。
    // JAVA Home
    $ /usr/libexec/java_home -V
    Matching Java Virtual Machines (1):
        1.8.0_45, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
    
    /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
    

    找到JAVA_HOME后,我们把它配置到.bash_profile中去。其他的如ANDROID_HOME之类的也类似,都配置到bash_profile中就可以了。最后Xcode Command Line 是可以自动修复的,其余的收工处理。

    // 创建.bash_profile文件
    $ touch .bash_profile
    // 输入 open -e .bash_profile
    $ open -e .bash_profile
    

    全部修复完毕,会看到提示Everything looks good, bye!

    二、使用Terminal命令行安装

    前言,我们知道Appium也是依赖node环境的,我们这里最好是也用brew来配置node环境。安装完成后,检查输入$ node -v检查是否安装正确


    1、使用npm命令安装Appium
    这里需要注意的是先得授权,避免权限问题。然后是挂个代理科学上网,这是开发人员必备技能啊。

    $sudo chmod -R 777 /usr/local 
    
    $ npm install -g appium
    

    官网介绍:http://appium.io/getting-started.html?lang=zh
    2、使用npm命令安装appium-doctor

    $ npm install -g appium-doctor
    

    3、使用appium-doctor检查appium环境


    跟上面安装客户端一样,那里报错就改哪里。没有配置环境的,配置环境。没有安装的比如Carthage就上官网下个包安装下,直到最后一切ok为止。
    Carthage链接:https://github.com/Carthage/Carthage#installing-carthage

    4、都没问题后,运行一下试试吧。

    三、其他可能出现的问题

    1、早期的版本还遇到了和max OX 10.12更高系统不兼容的地方
    解决方案也很简单,参见stackoverflow:http://stackoverflow.com/questions/40129794/how-to-fix-error-could-not-detect-mac-os-x-version-from-sw-vers-output-10-12/40168992#40168992
    主要就是相关代码位置添加具体的版本控制:

    grep -rl "Could not detect Mac OS X Version from sw_vers output:" /Applications/Appium.app/
    
    1. 在版本控制中添加’10.12’
    
    2. 添加.trim()方法
    try {
    stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();
    }
    

    2、Error: targetSdkVersionFromManifest failed. Original error: Cannot read property '1' of null
    这个问题已经在2.9.1 fix,(权限问题API>23)
    https://github.com/appium/appium/issues/7353
    需要更新appium-adb,这里一定要在node目录下执行,要不然会提示失败!!!

    $ npm install appium-adb@2.9.1
    

    3、修改源代码避免每次运行都安装setting\unlock\ime等apk,这里以1.6.3版本为例子

    文件: /usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/driver.js,注释以下几句代码
    await this.adb.uninstallApk(this.opts.appPackage);
    await helpers.installApkRemotely(this.adb, this.opts);
    await helpers.resetApp(this.adb, this.opts.app, this.opts.appPackage, this.opts.fastReset);
    await this.checkPackagePresent();
    
    文件:/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/build/lib/driver.js 注释以下几句代码
    return _regeneratorRuntime.awrap(_androidHelpers2['default'].resetApp(this.adb, this.opts.app, this.opts.appPackage, this.opts.fastReset));
    return _regeneratorRuntime.awrap(this.adb.uninstallApk(this.opts.appPackage));
    return _regeneratorRuntime.awrap(_androidHelpers2['default'].installApkRemotely(this.adb, this.opts));
    return _regeneratorRuntime.awrap(this.checkPackagePresent());
    
    文件:/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js 注释以下几句代码
    await adb.install(unicodeIMEPath, false);
    await helpers.pushSettingsApp(adb);
    await helpers.pushUnlock(adb);
    
    文件 /usr/local/lib/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js 替换以下几句代码
    return _regeneratorRuntime.awrap(helpers.initUnicodeKeyboard(adb)) 替换为return context$1$0.abrupt('return', defaultIME);
    return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb)); 替换为return context$1$0.abrupt('return', defaultIME);
    return _regeneratorRuntime.awrap(helpers.pushUnlock(adb)); 替换为return context$1$0.abrupt('return', defaultIME);
    

    4、更新appium到最新版

    $ npm install -g appium
    
    关注获取更多

    相关文章

      网友评论

          本文标题:Android自动化 -- Appium环境搭建

          本文链接:https://www.haomeiwen.com/subject/ctqcsxtx.html