Appium搭建MacOS环境下的iOS App自动化测试环境(Windows搭个MacOS虚拟机就行,亦无须iPhone)
前言iOS的自动化测试无需Mac和iPhone,只要有Mac OS虚拟机和Xcode自带的iPhone模拟器即可,可以为初学者省下一笔资金。为什么要写这篇教程感谢国内积极发展的测试开发环境,让本人从Web自动化测试到安卓的自动化测试的入门都非常顺利,美中不足的是进展到iOS App自动化测试时国内外的资料都比较少,而且大多都已过时,故而写下此篇文章,希望能够为广大测试开发工程师朋友提供一些参考价值
前言
- 经过上篇文章《Windows上Appium自动化测试Android应用》的介绍,我们已经学习App自动化测试的基本知识,接下来我们来学习如何对iOS进行基于Appium的自动化测试。
- iOS的自动化测试无需Mac和iPhone,只要有Mac OS虚拟机和Xcode自带的iPhone模拟器即可,可以为初学者省下一笔资金。
为什么要写这篇教程
- 感谢国内积极发展的测试开发环境,让本人从Web自动化测试到安卓的自动化测试的入门都非常顺利,美中不足的是进展到iOS App自动化测试时国内外的资料都比较少,而且大多都已过时,故而写下此篇文章,希望能够为广大测试开发工程师朋友提供一些参考价值。
- 为了成为一个专业的测试开发工程师,检验自己的学习成果
撰稿时间
- 初稿时间:2021年6月13日 16点23分
- 作者:欧世乐
需要准备的环境
-
Mac OS 10.14及以上(没有Mac的朋友可以下载一个VMWare,装一个Mac OS)
-
Xcode11及以上(新版的Xcode附带更多iPhone机型和更新的iOS版本)
-
Xcode Command Line Tools
Xcode的命令行工具,根据自己的Xcode下载合适的Xcode命令行工具并安装
-
Appium Desktop for Mac(点击这里下载,桌面版的Appium更适合新手)
HomeBrew
- HomeBrew是一个Mac上的包管理工具,Mac上缺少的环境和命令都可以用brew命令下载和自动安装,非常的方便
安装上述软件
Mac OS的软件安装都比较简单,不是傻瓜式下一步就是拖拽安装,如果有出现不信任的开发者等情况只需百度一下即可解决。
在命令行安装HomeBrew并安装其他iOS测试必要的命令
- 打开Terminal(终端)输入安装HomeBrew的命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 使用HomeBrew安装其他必须的命令
brew install carthage
brew install node
brew install npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g appium-doctor
- 安装完毕后运行命令
appium-doctor
检查appium环境是否安装完毕,因为这里只测试iOS,所以安卓的环境(例如adb、ANDROID_HOME等环境)没有也没有关系。因为现在编译器(例如IDEA)可以指定JDK的位置,所以JAVA_HOME没有配也没关系。 - 只要下图红框内的内容已安装即可
在iPhone模拟器上安装测试驱动App
-
因为是入门文章,还是以实践为主。这里不阐述过多Appium的原理,简单来说Appium操作iPhone进行自动化测试时,Appium都是给这个驱动App发号施令,让这个驱动App去操作我们想测试的软件,所以先安装这个驱动App。
-
这个驱动App在Appium里面,找到安装好的Appium Desktop,一路进入包内。
-
打开Finder(访达),按下Command +Shift +G,输入路径
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
- 用Xcode把这个驱动App安装到iPhone中,双击WebDriverAgent.xcodeproj
- 点击左上角的运行按钮,选择合适的iPhone模拟器即可安装成功(首次运行iPhone模拟器比较慢,需要等待)
- 安装完驱动App后如图所示:
准备待测试的iOS App
- 我手上没有可测试的iOS App,所以我自己写了一个简单的Demo,这个iOS App只有一个页面,上面显示了"Hello World"。
- 取个名字,Organization ID这些随意,不过要记得,因为Appium启动App时需要知道这个App的ID。
- 选择项目保存在本地的位置
-
选择一个元素拖拉到白色的背景板里
-
这里要记住待测App的ID
Appium尝试连接iPhone
- 无论是模拟器还是iPhone真机,他们都有唯一的ID,Appium操作iPhone时得知道iPhone的ID才可以,在terminal输入命令:
instruments -s devices
这条命令会输出所有iPhone虚拟机、真机的ID,我们这里选用的是iPhone 11 Pro Max,可以看到ID为98F01268-1E8B-4E32-8E0D-15ABE02745B1
- 打开Appium,如果出现这种情况,别急着把Appium移到废纸篓里
点击取消后,试试在terminal输入:
xattr -cr /Applications/Appium.app/
然后就可以顺利打开Appium了,打开后记得把Host改为本地,即127.0.0.1
- 点击Start Server,启动服务器后点击Inspector Session
- 准备设置iOS App的相关信息
- 输入App的配置信息,这里的udid改成模拟器的ID,这里的bundleId改为待测App的id,如上文所述需要记录的,其余的都不必修改。
{
"platformName": "iOS",
"deviceName": "iPhone",
"platformVersion": "13.3",
"udid": "98F01268-1E8B-4E32-8E0D-15ABE02745B1",
"bundleId": "mars.ou.demo1",
"xcodeSigningId": "iPhone Developer"
}
- 点击右下角启动会话,这时候iPhone会打开待测App,Appium自带的检查器也会出现待测App
结语
iOS App的Appium自动化测试环境就这样搭建好了,如果你希望通过Java、JS或者Python等语言编写自动化测试脚本,当然上篇文章《Windows上Appium自动化测试Android应用》也有介绍,欢迎关注我的博客,我们一起进步和学习。
如有问题请在下方留言。
更多推荐
所有评论(0)