美文网首页编程技术类iOS - 自动化及其单元测试
iOS自动化测试:mac下iOS10 appium测试环境的搭建

iOS自动化测试:mac下iOS10 appium测试环境的搭建

作者: zhoutq | 来源:发表于2017-06-09 18:37 被阅读1709次

    概述

    Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏览器的应用。混合应用是指一种包裹webview的应用,原生应用于网页内容交互性的应用。重要的是Appium是跨平台的,何为跨平台,意思就是可以针对不同的平台用一套api来编写测试用例。

    iOS10后基于UIAutomation的测试框架已经苹果更改为XCUITest测试框架了,从Appium1.6.3开始Appium也开始支持XCUITest了。由于时间原因,Appium1.6.3以前的测试环境搭建及其工具使用就不再说明,资料网上也是一大把。截止目前最新的是Appium1.6.5,下面介绍下环境搭建过程。

    开发环境


    系统:macOS Sierra (10.12.4)

    开发工具:Xcode 8.3.2(iOS10.3.1)

    环境搭建


    开始搭建

    1、 安装homebrew:homebrew 简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum等神器。

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    2、 安装libimobiledevice:libimobiledevice 是一个跨平台的软件库,支持 iPhone®, iPod Touch®, iPad® and Apple TV® 等设备的通讯协议。不依赖任何已有的私有库,不需要越狱。应用软件可以通过这个开发包轻松访问设备的文件系统、获取设备信息,备份和恢复设备,管理 SpringBoard 图标,管理已安装应用,获取通讯录、日程、备注和书签等信息,使用 libgpod 同步音乐和视频。

    $ brew install libimobiledevice --HEAD

    3、 安装carthage:carthage 使用于 Swift 语言编写,只支持动态框架,只支持 iOS8+的Cocoa依赖管理工具。

    $ brew install carthage

    4、安装node:node是安装npm的前置条件。

    $ brew install node

    5、安装npm:npm是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。

    $ brew install npm

    6、安装cnpm:国内直接用npm下载安装会有好多网络问题,安装淘宝的cnpm要比npm好用,https://npm.taobao.org/

    $ npm install -g cnpm --registry=https://registry.npm.taobao.org

    7、安装ios-deploy:ios-deploy是一个使用命令行安装ios app到连接的设备的工具,原理是根据os x命令行工程调用系统底层函数,获取连接的设备、查询/安装/卸载app。

    $ cnpm install -g ios-deploy

    8、安装xcpretty: xcpretty是用于对xcodebuild的输出进行格式化。并包含输出report功能。

    $ gem install xcpretty

    9、安装appium,appium-doctor

    $ cnpm install -g appium

    $ cnpm install -g appium-doctor

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

    $ appium-doctor //appium-doctor --ios 只检测iOS环境

    info AppiumDoctor Appium Doctor v.1.4.2

    info AppiumDoctor ### Diagnostic starting ###

    info AppiumDoctor  ✔ The Node.js binary was found at: /usr/local/bin/node

    info AppiumDoctor  ✔ Node version is 6.10.2

    info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer

    info AppiumDoctor  ✔ Xcode Command Line Tools are installed.

    info AppiumDoctor  ✔ DevToolsSecurity is enabled.

    info AppiumDoctor  ✔ The Authorization DB is set up properly.

    info AppiumDoctor  ✔ Carthage was found at: /usr/local/bin/carthage

    info AppiumDoctor  ✔ HOME is set to: /Users/zhoutq

    WARN AppiumDoctor  ✖ ANDROID_HOME is NOT set!

    WARN AppiumDoctor  ✖ JAVA_HOME is NOT set!

    WARN AppiumDoctor  ✖ adb could not be found because ANDROID_HOME is NOT set!

    WARN AppiumDoctor  ✖ android could not be found because ANDROID_HOME is NOT set!

    WARN AppiumDoctor  ✖ emulator could not be found because ANDROID_HOME is NOT set!

    WARN AppiumDoctor  ✖ Bin directory for $JAVA_HOME is not set

    info AppiumDoctor ### Diagnostic completed, 6 fixes needed. ###

    info AppiumDoctor

    info AppiumDoctor ### Manual Fixes Needed ###

    info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:

    WARN AppiumDoctor - Manually configure ANDROID_HOME.

    WARN AppiumDoctor - Manually configure JAVA_HOME.

    WARN AppiumDoctor - Manually configure ANDROID_HOME and run appium-doctor again.

    WARN AppiumDoctor - Add '$JAVA_HOME/bin' to your PATH environment

    info AppiumDoctor ###

    info AppiumDoctor

    info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!

    info AppiumDoctor

    环境常见问题解决:

    ✖ Xcode Command Line Tools are NOT installed!

    $ xcode-select --install #按照提示安装即可

    WARN AppiumDoctor ✖ ANDROID_HOME is NOT set!

    建议安装AS,可以解决其他Android环境的其他问题Android Studio

    设置 ANDROID_HOME 路径

    设置 JAVA_HOME 路径

    Mac OS X 下查看和设置JAVA_HOME

    在.bash_profile/.zshrc文件中设置JAVA和Android环境变量

    #android sdk

    export ANDROID_HOME=~/Library/Android/sdk

    export PATH="$HOME/.yarn/bin:$PATH"

    #java_home

    export JAVA_HOME=$(/usr/libexec/java_home)

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASS_PATH=$JAVA_HOME/lib

    以上都很简单,下面重点来了。

    11、appium服务端安装:安装appium-xcuitest-driver依赖,进入WebDriverAgent安装目录,运行bootstrap。

    $ cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent (如果WebDriverAgent 所在路径和此不同,请自行查找)

    $ mkdir -p Resources/WebDriverAgent.bundle

    $ sh ./Scripts/bootstrap.sh

    11.1、用Xcode打开WebDriverAgent,并且编译进入WebDriverAgent 文件夹,可用如下方法:

    11.2、编译WebDriverAgentLib

    11.3、编译WebDriverAgentRunner

    若果编译的过程中有语法错误,重新安装第10步。

    11.4、建立服务WebDriverAgent:进入WebDriverAgent 文件夹,建立服务。

    $ cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

    $ xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test

    运行到最后会发现

    而iphone多了一个WebDriverAgentRunner的app。手动启动那个app的时候

    原因是我们手机并并没有信任这个apple id的开发者,到设置-通用-设备管理(描述文件) 信任你的apple id就可以了。再次运行上述命令,看到如下图,就成功了,

    12. 安装appium client端:appium client有ruby,python,java三个版本,可自行选择自己喜欢的安装即可,这里只说Python版安装,具体见下面查看资料3。

    pip安装

    $ pip install Appium-Python-Client

    如果安装过程出现 could not create ‘/Library/Python/2.7/site-packages/appium’: Permission denied 错误,

    使用 pip install Appium-Python-Client –user 命令可以安装成功

    源码安装 在Pipy上下载源码安装

    $ tar -xvf Appium-Python-Client-X.X.tar.gz

    $ cd Appium-Python-Client-X.X

    $ python setup.py install

    github安装

    $ git clone https://github.com/appium/python-client.git

    $ cd python-client

    $ python setup.py install

    13、测试流程:

    下载测试代码并且测试,网上一个简单的测试代码:erduoniba/appium_ios_sample_code,自己写可以参考Python + Appium+ IOS自动化测试

    对于如何利用app-inspector获取界面元素,请参考app-inspector官方文档。

    13.1、先启动appium服务器:

    $ appium -U xxxxxxx // xxxxx 真机设备ID

    13.2、接下来连上真机 执行测试用例代码:

    $ cd sample-code/examples/python

    $ python ios_simple_device.py

    test_scroll (__main__.SimpleIOSTests) ... ok

    ----------------------------------------------------------------------

    Ran 1 test in 30.421s

    OK

    踩过的坑


    1、1 - 10步安装过程中的权限问题:chmod -R 777 pathForFile,然后重新运行该命令。

    2、第11.4步我在安装的时候一直没有Listening on USB这一行信息,不过服务正常可以使用。

    3、在测试过程中一直提示第11.4步第一个图的错误的话,拔数据线,关测试机,重启,重插。


    参考资料


    1、Appium在 MAC 上搭建 appium1.6.3 过程:https://testerhome.com/topics/6962

    2、appium1-macOS10.12下如何丝滑的使用appium?:http://www.jianshu.com/p/05943804c25e

    3、Appiumappium + iOS10.2 + Xcode8.2.1 + React Native 完成自动化测试:https://testerhome.com/topics/7775

    相关文章

      网友评论

        本文标题:iOS自动化测试:mac下iOS10 appium测试环境的搭建

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