吐槽
百度google了一轮,最大的感触是:好多教程都不适用啊!要么是Appium版本旧,要么是iOS版本旧。想找一篇详细的“从入门到放弃”的教程都没有,搭Android环境的时候,能搜到很多十分详实的教程,而iOS的就有点头疼了,然而,坑还是要入的。
Appium自动化测试优势
安装Appium客户端,有个inspector section可以运行客户端的app,运行的操作步骤可以直接生成多语言脚本,运行脚本后,可以实现自己想要的自动化测试,也可以让测试负责去写脚本,不懂代码的人也能实现牛逼的自动化测试,何乐而不为呢?举例说明看此博客的最后实例部分,亲测好用.
事实说话
- xcode8之前的instrument是支持UIAutomation,xcode8以及以后的版本就不支持了
- iOS 9.3 及以上:苹果的 XCUITest
- iOS 9.3 及以下:苹果的 UIAutomation
扩展(通过命令行将iOS的APP安装到模拟器中)
扩展1
XCode6 之后提供了xctool这个工具,可以做到这些事情:
1.启动一个模拟器
2.把app安装到启动好的模拟器上面
3.从模拟器上卸载指定的app
启动运行模拟器:xcrun instruments -w 'iPhone 6 Plus'
在已经启动好的模拟器中安装应用:xcrun simctl install booted Calculator.app
(这里要特别注意,是app,不是ipa, 安装时需要提供的是APP的文件路径,为了减少犯错,你桌面上建个文件夹,把.app文件放进去,先cd到这个目录下,再运行)
正常情况下,就可以看到,这里已经把Calculator这个app安装到了模拟器里面。
卸载APP的命令就比较简单了 xcrun simctl uninstall booted com.yuchang.calculator
卸载时需要写的是bundle identifier
xcrun 这个命令实际还有很多更高深的玩法,具体直接xcrun --help可以自己学习和领悟了,当然也可以把上面的几个命令组合起来写个脚本,实际提高工作效率
扩展2
使用ideviceinstaller
安装方法也很简单 brew install imobiledevice
之后安装ipa的话就直接用 ideviceinstall --udid ${UDID} --install your.ipa
再详细介绍下安装真机实践的几个工具
Appium Desktop
Appium向来有命令行版的和GUI版的——我选择后者,到官网下载安装最新的Appium Desktop 1.2.7的dmg,里面带了1.7.1的Appium(目前的最新版)
下载地址:
appium-desktop
Appium客户端库
Python、Ruby、Java、Javascript、PHP、C#等,任君选择,去官网下载。
例如我用Python,就安装Appium-Python-Client,在终端运行
安装依赖库
brew install libimobiledevice --HEAD
npm install -g ios-deploy #如果是iOS10以上的系统才需要安装
如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
appium-doctor 安装
npm install appium-doctor -g
安装后执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了。
appium-doctor --ios
更新Appium中的WebDriverAgent
1.到WebDriverAgent下载最新版本的WebDriverAgent
2.进入下载后的WebDriverAgent文件
3.执行 ./Scripts/bootstrap.sh
4.直接用Xcode打开WebDriverAgent.xcodepro文件
-
5.配置WebDriverAgentLib和WebDriverAgentRunner的证书
如图:
6.连接并选择自己的iOS设备,然后按Cmd+U,或是点击Product->Test
-
7.运行成功时,在Xcode控制台应该可以打印出一个Ip地址和端口号
如图:
-
8.在网址上输入http://(iP地址):(端口号)/status,如果网页显示了一些json格式的数
如图:
9.进入到Appium中的WebDriverAgent目录,目录路径如下
(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/)
10.将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent
运行Appium-Desktop
准备工作
- 1.需要一个.app 或是一个 .ipa 安装包,这个安装包是你要进行测试的应用程序
- 2.测试应用程序对应的bundleId
- 3.测试设备的udid,电脑连接上手机后,可以在Xcode的Window->Deriver中查看
运行程序
- 1.运行Appium-Desktop
- 2.开启start server
- 3.点击start new session
- 4.在 Desired Capabilities 中输入相关的参数后点击Start Session
- 5.运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
- 6.点击界面上方中心的录制按钮,可以将你对手机端的操作代码化
举例: 利用Appium-Python-Client进行iOS的自动化测试
准备工作
安装python
brew install python
安装appium的python依赖库
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
很可能会报错,是因为权限的问题,解决:去git地址python-client上找到python-client ,手动下载下来,然后cd python-client
python setup.py install
测试文件
在git上下载测试文件 appiumSimpleDemo
- 1.一个简单的iOS工程文件
- 2.一个简单的python测试文件
开始自动化测试
配置iOS工程文件
- 1.打开下载后的
appiumSimpleDemo
文件,打开appiumSimpleDemo.xcodepro
程序,配置下TARGET的签名 - 2.在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件
xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release
,编译成功后app文件的地址会打印在命令行中
配置python文件
打开appiumSimpleDemo
中的appiumSimpleDemo.py
文件,将,修改setup
中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。
运行Appium程序
打开之前下载安装的Appium-desktop,并开启服务。
运行python测试文件
在appiumSimpleDemo.py
所在的目录运行python appiumSimpleDemo.py
,如果之前设置都没有出错,那么程序应该会在手机上成功运行,并自动点击了entry next view
进入到了下一个界面,过了2s后会重新返回第一个界面
精髓部分
点击startsession,可以操作真机或者模拟器,可以把操作路径转化成多种语言脚本,运行脚本,就可以自动化测试了,不会写脚本的测试人员也能搞出自动化测试脚本并实现自动化测试了。具体使用参考:
Appium-desktop使用