首页 > 解决方案 > 是否可以同时在多个模拟器设备上进行 iOS XCUITesting?

问题描述

我有一个应用程序,它在生产中将在五个不同的设备上,使用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()

}

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

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

标签: iosswiftios-simulatorxcuitest

解决方案


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

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

选项


推荐阅读