Edit this Doc iOS 的 XCUITest 驱动

iOS 应用的自动化测试,Appium 主要通过 XCUITest 驱动进行驱动。(如果您是 Appium 新手? 可以参阅: introduction to Appium drivers)。这个驱动通过苹果公司的 XCUITest 库,让自动化测试可以更方便地执行 App 自动化测试。它是通过 WebDriverAgent 服务对 XCUITest 进行访问。WebDriverAgent(也称之为 “ WDA ”)是 Facebook 公司的一个项目,Appium 的核心团队为其做出了许多贡献。WDA 是一个 WebDriver兼容的服务,服务可以运行在 iOS 模拟器或真机上,并且调用 XCUITest API。WDA 作为 Appium 的 XCUITest 驱动管理器,对用户而言是一个黑盒进程,通过 WDA 对往来的通信进行代理,并提供许多额外的能力(举个例子:如管理模拟器等方法)。

XCUITest 驱动的开发过程,记录在了 appium-xcuitest-driver 仓库中。

需求与依赖

在 Appium 常规依赖之外:

迁移自 UIAutomation 驱动

如果您正在从 Appium 的旧驱动程序:UIAutomation-based driver 迁移到XCUITest驱动,您可能想知道这个:迁移指南

使用

在使用 XCUITest 驱动来创建一个会话链接时,需要包含 automationName capability 参数在您的 创建新会话请求中,且其值应该是:XCUITest。当然,您也至少传递这些必传参数:platformName, platformVersion, deviceNameapp

在 iPhone 与 iPad 设备上,参数 platformName 需要是 iOS。在 tvOS 设备上,参数 platformName 需要是 tvOS

功能参数

XCUITest 驱动支持许多通用的功能参数 Appium capabilities, 同时,有许多特有的功能参数,可以参考这篇文档查找这些功能参数:appium-xcuitest-driver README.

如果要在 Safari 上测试,而不是在您的 App 上测试的话,请设置 app 为空,并且设置 browserNameSafari

命令

如果需要查看 Appium 支持的命令,及它们是如何映射到 XCUITest 驱动的,可以参考:API Reference.

基础设置

(我们推荐使用 Homebrew 来安装系统依赖)

  1. 确保您拥有 Appium 的基础依赖(例如:Node 与 NPM)来安装和配置 Appium。

如果您的自动化测试不使用真机运行,那么您已经完成设置了! 使用模拟器运行一个自动化测试app, 参数 app 需要设置为 App 的绝对路径或下载地址,它需要是一个后缀为 .app.app.zip 这样的,为模拟器构建的 App 文件。

真机设备设置

Automating a real device with XCUITest is considerably more complicated, 在真机上使用 XCUITest 进行自动化要复杂得多,原因是 苹果对在真实设备上运行应用程序的限制。请查看 XCUITest real device setup doc 获取介绍 。

一旦设置完成,在真机上运行会话可以使用这些功能:

可选设置

运行测试生成的文件

在 iOS 上测试生成的文件有时会很大。 它包括:日志文件、临时文件以及Xcode运行时产生的数据。如果需要删除这些文件,一般来说,可以从以下地址找到它们:

$HOME/Library/Logs/CoreSimulator/*
$HOME/Library/Developer/Xcode/DerivedData/*

键盘设置

高于 Appium 1.14.0,Appium 默认配置键盘首选项以让测试运行地更加稳定。您可以通过这些 API 来设置。

可访问偏好设置调整

在某些情况下,启用以下首选项有助于使某些视图元素可访问。 Appium不会自动修改这些设置,因为它们可能会影响被测试应用程序的执行方式。 如果需要这些设置,需要您手动设置。