0

我正在自动化测试用例以在多个设备中并行运行。我为此使用 Appium,效果很好。我的问题是我有一些测试用例需要设备登录到特定的 Apple Store 帐户。此外,设备可能已经登录到另一个帐户,而我没有手动注销的选项。如果设备没有附加帐户,我的登录帐户的测试用例已经运行良好(在我的应用程序中,我尝试执行需要 Apple ID 的操作,出现需要登录的警报并且我已经自动化了登录过程)。问题是当设备已经登录到另一个帐户时。

我的两个选择是:

  • 强制设备从 Apple Store 注销
  • 在我的测试之前创建一个没有被记录的设备备份并恢复这个备份

我无法找到处理第一个选项的方法。第二个使用 idevicebackup2(来自 libimobiledevice 的库)工作。这里的问题是,在恢复设备数据后,会出现设置向导,并且无法自动摆脱它。我尝试使用 cfgutils 删除向导步骤,但即使在删除所有步骤之后,向导也会出现在恢复后等待确认。

我想知道是否有办法选择第一个选项,或者跳过第二个选项中的设置向导,或者可能有办法部分恢复备份(只是清除 Apple ID 数据)以便避免重新启动设备并再次卡在向导中。提前致谢。

4

1 回答 1

0

Xcode 9 现在可用的一个选项是新的多应用程序测试。XCUIApplication(bundleIdentifier: "com.MEGACORP.xyz")现在,您可以在 XCUI 测试期间根据其捆绑标识符调用系统上的任何应用程序。它们涵盖了 WWDC 会话 409 中的新 API 和示例 - What's New in Testing - 值得一看。

我已经使用新 API 编写了一些测试来退出被测应用程序并打开系统设置以在测试拆卸期间重置应用程序状态。这个问题中有一个所有系统捆绑包 ID 的列表。

您的测试将从以下内容开始:

let store = XCUIApplication(bundleIdentifier: "com.apple.AppStore")
store.launch()
于 2017-06-24T15:51:08.053 回答