花了几天时间去网上找了各种安装资料,遇到了很多问题,因为有些教程可能比较旧了,还有就是有些不太符合自己的实际情况。在这里记录下我的配置过程。
一、准备工作
1.xcode ⇒ 直接从appstore下载的最新版。
2.安装homebrew、carthage、node、npm:
⇒可参考iOS自动化测试:mac下iOS10 appium测试环境的搭建 - 的1-8步
※这里因为npm好像国内的网速不是很好可能需要梯子,所以推荐安装cnpm。
※安装完一定要记得使用检查版本的命令检查下版本,确定是否安装成功。
3.安装java、安卓SDK(配置环境变量)
java ⇒ 百度一下就可以
安卓SDK安装 ⇒ 可参考How to Install Android SDK and Get Started
※java和安卓都需要配置下环境变量。
※参考的链接里安装的是Android Studio IDE开发工具然后自带了安卓SDK,比较方便。
4.使用cnpm安装appium、appium-doctor、appium下载依赖
参考iOS自动化测试:mac下iOS10 appium测试环境的搭建 - 的9-11步。
※这里我走走了很多坑,按照网上其他的教程有的推荐从git下载到本地然后进入目录使用npm安装
总是会卡主没成功过。最后看到这个教程里面的使用cnpm直接安装就是git上的最新版,超好用 啊!安装完之后记得使用appium -v检查下版本,如果出现版本则说明appium安装成功了。
※使用appium-doctor检查下appium的环境是否有问题。
二、安装appium桌面客户端
下载地址:Releases · appium/appium-desktop · GitHub
没啥其余要特殊做的
三、替换appium.app中的WebDriverAgent(敲黑板)
⇒网上说由于appium自带的WebDriverAgent 有缺陷,所以我也一样换成了facebook 的 WebDriverAgent
下载链接GitHub - facebook/WebDriverAgent: A WebDriver server for iOS that runs inside the Simulator.
※要注意的地方:随便把下载的WebDriverAgent放到哪里,但是一定不要放在需要权限的路径里面!!!!
⇒使用终端cd到你存放WebDriverAgent的目录下,使用下面命令下载依赖
./Scripts/bootstrap.sh
这个过程如果卡主可能会需要梯子(我是架了),如果没办法架梯子可以多试着反复安装几次。。听天由命了。
⇒ 把下载好依赖的WebDriverAgent整个文件夹 替换appium应用包路径下面WebDriverAgent文件夹
我的路径是这个
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
四、真机安装WebDriverAgent(敲黑板)
我的情况是这样的,没有开发者账号,只有.p12和.mobileprovision。
如果有开发者账号的小朋友可参考普通的教程ATX 文档 - iOS 真机如何安装 WebDriverAgent · TesterHome
下面来记录下我的配置方法:
1.将.p12导入到mac的钥匙串
2.点击刚替换好的WebDriverAgent文件夹下面的WebDriverAgent.xcodeproj文件
3.把你的手机连到电脑上
参考ATX 文档 - iOS 真机如何安装 WebDriverAgent · TesterHome的 运行与测试部分
手机上就会出来WebDriverAgent应用了,一个没有icon的app
这时候控制台就会打印出手机的ip和端口
⇒ ios10以下版本可以直接用浏览器访问 ip+status/查看状态:
例如:http://10.0.0.1:8100/status
⇒ ios10以上版本需要通过mac转发一下再去访问
# 使用--HEAD安装最新版本
$ brew install libimobiledevice --HEAD
$ iproxy 8100 8100
⇒ 上面确认没问题有正确正常的接口返回之后使用下面的接口来访问ui,查看各个控件的属性
http://10.0.0.1:8100/inspector ⇒ ios10以下,没转发的
http://localhost:8100/inspector ⇒ios10以上,有转发的
五、启动appium客户端
参考AppiumDesktop用法(力求详尽深入,后期可能会更新) -
填写参数时要注意的是大小写!!!
因为链接手机需要启动app嘛,所以填写参数的时候要选择一个要启动的app。
使用bundleId或者app都行。我用的是bundleId
然后就可以开始你的自动化测试之旅啦