我有一個運行在MAC中的自動化框架,它打開一個模擬器槽Appium。我想打開多個iOS模擬器來同時運行不同的測試用例,我有哪些選擇?使用appium在多個iOS模擬器上並行執行
1
A
回答
0
1 mac中1設備appium的技術限制可以通過使用Sauce Lab's移動雲來解決,該設備同時運行多個模擬器/設備。你需要註冊/註冊使用它們
0
檢查這個庫https://github.com/facebook/FBSimulatorControl,它會讓你能夠在同一個主機上運行多個IOS模擬器。
1
由於Xcode 9和Appium 1.7,現在可以實現了。關鍵是wdaLocalPort
的能力。每個模擬器都需要自己的端口。
下面是一個例子,我使用的紅寶石,但它會在其他語言的相似,以及:
require 'appium_lib'
opts = {
caps: {
automationName: 'XCUITest',
platformName: 'iOS',
deviceName: 'iPhone 7',
wdaLocalPort: 8001,
app: 'Example.app',
},
}
10.times do
driver = Appium::Driver.new(opts, true)
driver.start_driver.manage.timeouts.implicit_wait = 10
driver.find_element(:name, 'Button').click
driver.driver_quit
end
我不能打擾實現併發,所以你必須手動執行下一個腳本與第一個腳本同時發生。
require 'appium_lib'
opts = {
caps: {
automationName: 'XCUITest',
platformName: 'iOS',
deviceName: 'iPhone 8',
wdaLocalPort: 8002,
app: 'Example.app',
},
}
10.times do
driver = Appium::Driver.new(opts, true)
driver.start_driver.manage.timeouts.implicit_wait = 10
driver.find_element(:name, 'Button').click
driver.driver_quit
end
我還沒有玩過這個太多,但是當我用了兩個模擬器,我在同一時間跑了兩次測試的量。看看它的規模會不會很有趣。
編輯:證明,我可以不屑於實現併發:
require 'appium_lib'
device_names = [
'iPhone 6',
'iPhone 6s',
'iPhone 7',
'iPhone 8',
]
def test(device_name, port)
opts = {
caps: {
automationName: 'XCUITest',
platformName: 'iOS',
deviceName: device_name,
wdaLocalPort: port,
app: 'Example.app',
},
}
driver = Appium::Driver.new(opts, true)
driver.start_driver.manage.timeouts.implicit_wait = 10
driver.find_element(:name, 'Button').click
driver.driver_quit
end
device_names.each_with_index do |device_name, i|
fork {
10.times do
test(device_name, 8000+i)
end
}
end
Process.waitall
以上將啓動你的device_names
數組中指定,並運行在每個10個測試儘可能多的模擬器其中。我還寫了一個更復雜的基準腳本。在3到4個模擬器之間,我的性能提升不到10%,所以運行超過4個似乎並不值得,但我想這取決於你的系統。
隨着您啓動越來越多的模擬器,您可能會用完系統資源。以下是你如何處理:https://stackoverflow.com/a/46819409/310121
相關問題
- 1. 在appium上使用IOS模擬器並行執行ios測試用例
- 2. 同一個Appium Session上的多個iOS模擬器
- 3. 在iOS模擬器上使用selenium啓用/禁用Wifi/Appium
- 4. 如何使用Appium執行在iOS設備上左滑動使用Appium
- 5. Appium - 並行執行(Grid)
- 6. driver.setLocation()不適用於iOS appium模擬器
- 7. 如何使用Python和Monkeyrunner在AVD上執行並行測試Android模擬器
- 8. 開放Firefox瀏覽器在IOS模擬器使用Appium
- 9. 使用Jenkins Android模擬器插件運行多個模擬器
- 10. 使用React Native運行多個iOS模擬器?
- 11. 如何針對Appium/iOS模擬器運行Intern?
- 12. 運行Appium並行 - 多個Chromedrivers
- 13. 多個併發的iOS模擬器
- 14. 使用Jenkins在模擬器上運行iOS應用程序
- 15. Appium的iOS模擬器安裝錯誤
- 16. 如何設置iOS模擬器的appium?
- 17. 試圖通過genymotion模擬器運行appium時Appium錯誤
- 18. 我如何在Android模擬器上啓動並執行Vending.apk adb
- 19. 使用CUDA並行執行多個SVD
- 20. 滾動不適用於使用appium的iOS模擬器
- 21. iOS模擬器不運行
- 22. 如何在linux機器上並行執行多個perl腳本?
- 23. 如何自動執行iPhone模擬器上執行的操作?
- 24. Appium - 並行多個Android設備
- 25. 用於在iOS模擬器上測試瀏覽器的Nightwatch/Appium配置
- 26. iOS應用在設備上運行,但不在模擬器中
- 27. 在iOS 10上運行Appium 1.6測試
- 28. 並行執行多個AsyncTask
- 29. 並行執行多個NSOperation
- 30. Appium並行執行不同的服務器
你可以做到這一點,但在多臺Mac不在同一臺Mac! –