iOS 测试 Appium 搭建 MacOS 环境下的 iOS App 自动化测试环境(Windows 搭个 MacOS 虚拟机就行,亦无须 iPhone)

欧世乐 · 2021年06月14日 · 最后由 干饭狂人 回复于 2021年07月16日 · 4352 次阅读

前言

  • 经过我之前写的文章《Windows 上 Appium 自动化测试 Android 应用》的介绍,我们已经学习 App 自动化测试的基本知识,接下来我们来学习如何对 iOS 进行基于 Appium 的自动化测试。
  • iOS 的自动化测试无需 Mac 和 iPhone,只要有 Mac OS 虚拟机和 Xcode 自带的 iPhone 模拟器即可,可以为初学者省下一笔资金。

为什么要写这篇教程

  • 感谢 Testerhome 社区,让本人从 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 应用》也有介绍,欢迎关注我的博客,我们一起进步和学习。

如有问题请在下方留言。

共收到 1 条回复 时间 点赞

能工程化?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册