是否可以同时在多个模拟器设备上执行iOS XCUITesting?

时间:2018-11-09 16:17:19

标签: ios swift ios-simulator xcuitest

我有一个应用程序,该应用程序将在五个不同的设备上使用MultipeerConnectivity进行对话。我有一个bash脚本,可以在五个不同的模拟器上启动该应用程序。效果很好,但是我必须在每个设备上点击许多按钮才能每次测试所有内容。

因此,我想也许XCUITest可以帮助实现这一点的自动化,并删除这些外部bash脚本依赖项(想在Xcode / Swift中完成所有操作)。我尝试过这样的天真的方法:

func testExample() {
    // Use recording to get started writing UI tests.
    // Use XCTAssert and related functions to verify your tests produce the correct results.

  let app1 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  let app2 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  app1.launch()
  app1.buttons["Select Group"].tap()
  app1.sheets.buttons["Group one"].tap()
  app1.buttons["Host"].tap()

  // Launch and test App 2
  app2.launch()
  app2.buttons["Select Group"].tap()
  app2.sheets.buttons["Group one"].tap()
  app2.buttons["Join"].tap()

}

但这只能在同一个模拟器中一个接一个地启动应用程序。

那么,有什么方法可以在多个模拟器设备上同时实现XCUITest吗?(最好在Xcode / Swift中使用,但其他选项也可以使用)。

1 个答案:

答案 0 :(得分:7)

是的,自Xcode 10开始,您可以运行并行测试

  1. 在Xcode中选择目标方案,然后选择“编辑方案...”
  2. 找到“测试”的设置,然后按“信息”标签上的
  3. 您将看到您的单元和UI测试的列表,然后按相关联的 “选项...”按钮
  4. 选择“在模拟器上并行执行”
  5. 可选地选择“随机化执行顺序”

Options