【Appium IOS】环境搭建并运行demo(完整版)

该篇文章能带你初步进行自动化测试环境搭建,以及运行后实现通过Xcode/终端把demo安装到手机上。

0、安装Xcode,v11.3

1、安装类库Homebrew 、 安装carthage

1)Homebrew简介:  

        是Mac OSX上的软件包管理工具,用以安装和卸载mac上的其他工具,其缩写为brew,那么安装和卸载的语法是:brew install/uninstall xxxx;  

        如果我没有记错,有些mac自带Homebrew,那样就可以直接使用了,如果没有,则需要安装。如何查看电脑是否安装有Homebrew呢?很简单,终端输入 brew ,如果出现下面的内容,则说明已经安装好了。

2)Homebrew安装:

        如果未安装homebrew,则需要Mac必带的ruby来安装homebrew,如下:打开终端,执行:(安装会提示输入mac密码,回车等待安装,需要一点时间,但是速度比浏览器下载快太多了。)---下面是一条命令哟。

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

3)校验

    brew -v

4)更新brew:

    $ brew update     或⬇️

5)安装carthage

        carthage,iOS 第三方库管理工具,  项目依赖管理,主要是 WebDriverAgent 使用,WebDriverAgent 是用它做项目依赖的。类似于 java 的 maven;

      $ brew install carthage

      $ carthage version 查询版本,目前为0.34.3

      $brew uninstall carthage  卸载

2、安装类库:node (同步会自动安装npm)

1)简介:较新版本的node安装后,会附带npm工具。 npm即node package manager,用来搜索、下载、管理node.js相关的套件。对于前端开发者,node、npm是必备安装环境呢。

2)安装(可以先校验下是否已安装,未安装再安装):$ brew install node

3)校验:$ node -v    、$ npm -v

4)npm的一些使用:

    $ npm help //查看npm帮助

    $ npm find //查找组件

    $ npm install //安装组件

    $ npm remove //删除组件

3、安装依赖库:libimobiledevice(必装)、ios-deploy (iOS10+还必须安装)

1)安装 libimobiledevice。(必装)

        libimobiledevice是跨平台的软件协议,不需要越狱就能访问ios设备;类似android的adb工具,用于获取ios设备信息。

    $ brew install libimobiledevice --HEAD     或者  $ brew install --HEAD libimobiledevice

校验:拿上面的命令试下即可,如果安装失败会提示comment not found,如下则安装成功。


   ⚠️若执行时遇到无权限(如下图所示),则执行如下2个命令后重试    

                $ sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks

                $ chmod u+w /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks

2)下面两个安装哪个,请根据您的ios版本进行安装,因为考虑到ios一直在升级或者要测试低版本兼容性,所以呢,下面两个最好都安装下喽!

    2.1)如果你的IOS 版本是10及以上,则需要安装ios-deploy (仅支持IOS10及以上的高版本)

            ios-deploy也是一个终端安装和调试iPhone应用的是第三方开源库,使用时需要开发者证书和Xcode7以上版本,(----$ ios-deploy -c如果不报错,说明已安装

                 $ npm install -g ios-deploy       或      $ cnpm install -g ios-deploy

                 点击查看iOS-deploy常用命令  

        ⚠️如果提示没权限则执行: 

                $ sudo chown -R $(whoami) /usr/local/lib/node_modules/ios-deploy

                $ chmod u+w //usr/local/lib/node_modules/ios-deploy   

    2.2)如果你的IOS 版本是9及以下,则需要安装ideviceinstaller(仅支持IOS9及以下的低版本):

                $ brew install ideviceinstaller

                校验(如果不报错,说明安装成功):

                $ ideviceinstaller -l

                   常用命令,自行

4、Appium-desktop 1.15.1安装

Appium Desktop与Appium不是同一个东西。Appium Desktop是对于Appium而言,是一个拥有更多相关工具的图形化界面。它们各自有各自的Cadence和版本控制系统。我们使用desktop进行实践:

1)下载链接: https://github.com/appium/appium-desktop/releases,可以手动下载或者git,目前最新版本为v1.15.1.

        或者直接执行安装:$ brew cask install appium

2)将下载的dmg文件拷贝到文件系统(最好的地方是“应用程序”文件夹)。因为不支持从附加的dmg上运行Appium。

3)双击进行安装

        3.1)遇到报错:不能打开软件提示无法打开“appium”,因为Apple无法检查其是否包含恶意软件。

                解决:在命令行输入:$ sudo xattr -rd com.apple.quarantine /Applications/Appium.app    ----(应用名称),输入密码回车重新打开即可

或者如下图,解锁后选择仍要打开:

         3.2)重新双击进行启动即可(里面的端口可以自定义)

 appium desktop,也可以使用命令行启动:

1⃣️$ node  /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js  --port 4723

              //--port  ,Appium的主要端口

2⃣️也可以在命令行中添加--port、--bootstrap-port、--selendroid-port等appium服务命令行参数:

node  /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js  --port 4723  --bootstrap-port  4724  --selendroid-port   8090

             // --bootstrap-port,也可以写成-bp ,是连接Android设备bootstrap的端口号,默认是4724

             // --selendroid-port   8090,当使用了selendroid,用来和 selendroid 交互的本地端口

            // --chromedriver-port chromedriver端口(当使用了webviews或者chrome)

3⃣️更多参数:https://www.cnblogs.com/Teachertao/p/10961256.html

5、appium-doctor 安装 

appium-doctor用于环境检查,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过。

安装appium-desktop后一般会默认也安装了,如果执行$ appium-doctor –ios进行环境检查时提示无命令,则可能是部分appium-desktop版本需要手工安装appium-doctor,如下一步步执行即可

1)$ npm install appium-doctor -g

       // 若提示无权限,则执行如下:

                    $ sudo chown -R $(whoami) /usr/local/lib

                    $ chmod u+w /usr/local/lib

            再次执行安装doctor即可:

2)环境检查:(warn可以忽略,未安装的安装下即可)

        appium-doctor –iOS

6、更新Appium中的WebDriverAgent

WDA: WebDriverAgent的简称,是Facebook为苹果开发的一个自动化测试框架。

WDA的安装移步到另一篇文章中查看(操作完后记得回来哟):https://www.jianshu.com/p/b5bc45362fa0

7、实际运行:利用Appium-Python-Client进行iOS的自动化测试

        一般都是使用Python进行客户端的UI自动化,所以在真正运行楼主的case之前,需要先把相关的依赖环境安装完成

1)安装python,一般mac自带

        brew install python  

2)安装Python的appium模块,即下载python-client ,放在那里终端就切换到哪里去git

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

        cd python-client 

        python setup.py install

            //执行时提示没有没权限,则执行如下赋权

                        sudo chown -R $(whoami) /Library/Python/2.7/site-packages/

                        chmod u+w /Library/Python/2.7/site-packages/

3)下载测试demo(appiumSimpleDemo):里面主要写了个简单的iOS工程文件,并包含一个简单的Python测试脚本

        git clone https://github.com/zhshijie/appiumSimpleDemo

8、运行脚本,开始自动化测试

1)打开下载后的appiumSimpleDemo文件,打开appiumSimpleDemo.xcodepro程序,配置下TARGET的签名

2)在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release,编译成功后app文件的地址会打印在命令行中 

        cd xcode_workspace/appiumSimpleDemo

        xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release

/Users/Cathleen/xcode_workspace/appiumSimpleDemo/build/Release-iphoneos/appiumSimpleDemo.app

                        //编译时如果报错xcode-select: error: tool 'xcodebuild' requires Xcode,这种情况是xcodebuild的路径不正确。执行命令($xcode-select--print-path / $xcodebuild-showsdks)查看路径。

                        //报错解决:将路径切换到Xcode的目录下(实践成功):

                          sudo xcode-select--switch/Applications/Xcode.app/Contents/Developer/

3)配置python文件

        打开appiumSimpleDemo中的appiumSimpleDemo.py文件,将,修改setup中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。----$ ios-deploy -c查看udid&设备名称。

4)运行

        法1⃣️:在Xcode中运行:cmd+u,或者project>test。(无需启动appium)

        法2⃣️:运行Appium程序,然后运行python测试文件(在终端中执行:在`appiumSimpleDemo.py`所在的目录运行   `$ python appiumSimpleDemo.py`  )

                      ------如果提示SyntaxError: Non-ASCII character则在py文件中添加“# encoding: utf-8”或者“# -*- coding:UTF-8 -*-”即可。

                      -------如果报错链接被拒,则是因为appium未启动,启动再次执行即可。

        结果编译成功。并且在手机上安装了demo。


⚠️遇到的问题:如果xcode虽然编译成功而且安装了demo但是报了个错(无法启动“appiumSimpleDemo”-),如下:

        解决:在设置〉通用〉设备管理或者描述文件〉信任即可,如果遇到完成信任的问题,请参考 ios13找不到描述文件 一定能解决你的问题!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269