前言
  • 经过上篇文章《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应用》也有介绍,欢迎关注我的博客,我们一起进步和学习。

如有问题请在下方留言。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐