如何使用 Appium 在多個設備上運行相同的腳本

行動應用程式的自動化測試已經存在一段時間。早期擁有自動化測試套件被視為一種奢侈,但現在,它已成為DevOps的重要部分。

自動化測試有很多好處,但以下三點最為重要:

  • 增加測試覆蓋率: 自動化測試讓您可以在更短的時間內測試更多功能。這意味著您可以增加測試覆蓋率而不增加測試預算。
  • 降低人為錯誤風險: 自動化測試較不容易遺漏邊緣情況或在手動測試應用程式時出現其他錯誤。
  • 更快的回饋:自動化測試的執行速度遠快於手動測試。這意味著您可以更快地獲得應用程式的回饋,有助於在問題變得嚴重之前進行修正。

行動應用程式自動化測試是一項有價值的程序,可以幫助您在更短的時間內釋出更高品質的應用程式。

但這裡的问题是,您是否覆蓋了足夠的設備來測試您的應用程序,並使其具有頂尖品質。在單一設備或多個設備上測試您的應用程序可能會導致特定於設備的問題,在不同解析度下的UI問題以及在不同作業系統版本間的功能問題。

為什麼在多個設備上運行同一腳本很重要?

QA流程中,在多個設備上測試應用程式是一個重要的步驟。我們必須確定我們的應用程式能夠在不同設備、作業系統版本和屏幕尺寸上正常運作。

在多個設備上測試應用程式有很多原因。其中一个最重要的原因是,用戶可能會使用不同類型的設備來訪問相同的應用程式。我們無法預測用戶將使用哪種設備來訪問應用程式,因此我們需要確保它能夠正常運作。為了確保我們可以輕鬆地在多個設備上運行我們的自動化脚本。

如何使用Appium在多個設備上運行同一腳本?

當我們在運行我們的Appium腳本時,我們需要傳遞Appium期望功能,這包括平台名稱、平台版本和我們的設備名稱

{
"platformName": "iOS",
"platformVersion": "11.0",
"deviceName": "iPhone 9",
"automationName": "XCUITest",
"app": "/path/to/my.app"
}

Copied

要在外部設備上運行您的測試腳本,我們需要更改測試腳本的所需功能,它將在我們指定的設備上運行測試腳本。我們不需要更改測試腳本就能在不同的設備上運行。然而,在Android和iOS設備上執行測試腳本可能會有所不同,因為元素定位器在Android和iOS設備上可能會有所不同。但是,只要更改所需功能,針對任何Android或iOS設備編寫的腳本都可以在具有相同操作系統的所有設備上運行。

管理多個設備的挑戰

在您的自動化測試過程中,在多個設備上運行腳本是相對容易的事情,但管理這些設備並擁有 多個設備是自動化過程中最困難的部分,也是一項成本高昂的事務。如果我們只談論iPhone,從iPhone6到iPhone13,它們被用戶用iOS11到iOS16的各種組合使用。而當涉及到Android時,這些數字大幅增加。沒有任何團隊能夠管理或擁有市場上推出的不同操作系統版本的所有流行設備。

模擬器/模擬器作為替代選擇

首先,我們想到解決這個問題的是使用不同的裝置模擬器和模擬器。但在模擬器/模擬器上測試並不等同於在實際設備上測試。雖然模擬器和模擬器會接近模擬,但它們無法像實際設備一樣執行。這是因為模擬器無法考慮到實際設備上的每個環境因素、功能或用戶操作。在實際的物理設備上進行測試意味著您正在以用戶操作他們設備的同樣方式進行測試。

在實際設備上進行測試:優勢

在這裡,BrowserStack成為了解決設備混亂的救星。BrowserStack App Automate提供了所有流行的設備,具有不同的作業系統版本,讓您能夠使用Appium自動測試您的應用程序。您可以輕鬆將BrowserStack整合到您的框架中,以在多個設備上測試您的腳本。

在多部設備上使用BrowserStack運行Appium腳本

使用BrowserStack的App Automate在多部設備上運行測試腳本非常簡便。您只需遵循幾個步驟來更改您的配置,它就能將您現有的測試自動化與BrowserStack整合起來。

步驟2: 在BrowserStack上上傳您的.apk或.ipa文件。您可以在您的控制面板上使用“上傳您的應用”來完成這項操作,或者您也可以使用BrowserStack API自動上傳。上傳應用後,您將獲得一個應用URL。

{
"app_url":"bs://f7c874f21852ba57957a3fdc33f47514288c4ba4"
}

Copied

步驟 3:使用 app 功能指定要測試的應用程式。使用在應用程式上傳 (步驟 2) 時返回的 app_url 值來設定此功能。

  • 使用 device 功能指定您想要測試的真正 Android 或 iOS 設備。
  • 為了初始化 Appium 驅動器,請使用遠程 BrowserStack 網址及您的 BrowserStack 訪問憑据(在步驟 1 中提及)如下所示:

https://YOUR_USERNAME:[email protected]/wd/hub

它會看起来像這樣:

userName = "YOUR_USERNAME"
accessKey = "YOUR_ACCESS_KEY"
desired_caps = { "build": "Android",
"device": "Samsung Galaxy S8 Plus",
platformVersion": "11.0",
"app": "<app_url>"
}
driver = webdriver.Remote("https://" + userName + ":" + accessKey +
"@hub-cloud.browserstack.com/wd/hub", desired_caps)

Copied

這樣做後,您的 Appium 腳本開始在 BrowserStack 云端的真正設備上運行。

您可以輕鬆地通過更改期望頭寸中的設備名稱和平台版本來更改設備。在 BrowserStack 上,您还可以平行地運行您的測試以加快自動化過程。BrowserStack 提供了視頻、設備日志、網絡日志和 Appium 日志供除錯,您可以在控制盤上查看您的測試運行情況。BrowserStack 可以帮助您與多個設備一起運行您的測試脚本,而您無需自己管理等設備。

總結來說,

BrowserStack 的 App Automate 讓者在多個真實設備上進行測試變得簡單。只需更換所欲望功能 (Desired Capabilities),使用者便可輕鬆地在数千個設備上運行測試,並 systematically 確定您的應用程序是否已經準備好发布。QA 團隊將發現使用結果控制面板 (results dashboard) 來尋找和修正問題變得簡單快捷。

免费運行 Appium 測試

Source:
https://www.browserstack.com/guide/how-to-run-same-script-in-multiple-devices-using-appium