【问题标题】:Is it possible to do iOS XCUITesting on multiple simulator devices simultaneously?是否可以同时在多个模拟器设备上进行 iOS XCUITesting?
【发布时间】:2018-11-09 16:17:18
【问题描述】:

我有一个正在生产中的应用程序将在五种不同的设备上使用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 中,但其他选项也可以)。

【问题讨论】:

    标签: ios swift ios-simulator xcuitest


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了,谢谢。有没有办法暂停应用程序以继续手动 UI 测试?现在我只使用sleep(1000),但这是一个丑陋的黑客。
    • 为了让其他人看到这一点,要同时运行多个模拟器,您需要为每个模拟器创建一个新的 XCUITest 类。所以基本上只是复制你现有的测试类,然后 Xcode 会创建你选择的模拟器的副本。
    • @eivindml 我认为你应该再问一个关于“手动继续自动化 UI 测试”的问题 ;)
    • 看起来最多有三个设备。我正在尝试同时启动五个,但只打开了三个。
    猜你喜欢
    • 2015-03-16
    • 2015-04-10
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2015-07-27
    • 2018-03-27
    • 2013-10-08
    • 1970-01-01
    相关资源
    最近更新 更多