發佈時間:2月12,2019
比較和組合 Web 和行動測試自動化驅動程式
本文重點探討了Web和行動測試自動化驅動程式之間的異同。 Appium 和 Selenium請繼續閱讀以了解更多資訊。
用於 Web 和行動端測試自動化的工具有很多。它們的功能、支援的平台和使用條款各不相同。本文僅重點介紹其中兩種:Appium 和 Selenium。
開發人員和測試人員使用 Appium 框架來實現 Web、原生和混合行動應用程式的自動化測試。 Selenium 框架則用於 Web 應用程式的自動化測試。此外,Selenium 使用 Java 編寫,而 Appium 使用 JavaScript 編寫。雖然乍一看它們有所不同,但它們有一個共同點:Appium 和 Selenium 都使用 webDriver 協定與目標平台通信:Appium 與行動裝置通信,Selenium 與 Web 瀏覽器通信。通常,Selenium webDriver 腳本既可以在行動裝置瀏覽器上執行,也可以在桌面瀏覽器中執行,從而對同一個 Web 應用程式執行相同的操作。
Web 和行動測試自動化驅動程式之間的區別
首先,網頁和行動端之間的差異在於… 測試自動化 驅動因素體現在功能、支援的平台以及用於運行測試的測試平台的配置上。 Appium 尤其如此,它充當 HTTP 伺服器,並有多種客戶端可供選擇:Java、JavaScript、Python、C# 和 Ruby。實際上,Appium 用戶端是對 Selenium webDriver 用戶端程式庫的封裝。除了 Selenium 之外,Appium 還使用了一組擴充功能的 webDriver API,專門用於與行動裝置互動。例如,Appium 包含用於支援多點觸控手勢和螢幕方向、管理地理位置資料、存取裝置日誌等諸多功能的命令。
Appium 伺服器可讓 Appium 使用者控制被測設備的功能,例如在測試會話期間安裝和解除安裝應用程式。 Selenium 也存在類似的客戶端實作。但是,只有當需要安裝 Selenium Grid 時,才需要 Selenium 伺服器來進行分散式測試執行。
為了更清楚地說明,Selenium 支援主流桌面作業系統上的主流瀏覽器。 Appium 支援各種 iOS 和 Android 設備,但僅限於官方支援的 iOS 和 Android 版本。此外,Appium 還可以實現 MS Windows 應用程式的自動化。另一方面,配置 Appium 和 Selenium 測試所需的基礎架構工作量有所不同。要進行 Appium 測試,您需要安裝 NodeJS、Appium,並配置 SDK 以及特定的裝置驅動程式和框架。而對於 Selenium 測試,除非您需要安裝 Selenium 伺服器來執行 Selenium Grid 測試,否則配置測試開發和執行環境的步驟相對較少。 Appium 和 Selenium 的技術棧示意圖如下圖所示。
在行動 Web 自動化中同時使用這兩個框架的範例
儘管存在上述差異,但由於這兩個框架的共同基礎,它們可以結合使用,用於 Web 和行動端的自動化測試。當我們需要在行動瀏覽器中測試 Web 應用程式時,可以同時使用 Appium 和 Selenium 框架,它們可以在同一個測試中相互補充。例如,您可以在下方看到一個指向 GIT 中簡單測試的鏈接,該測試會在行動裝置的 Android Chrome 瀏覽器中開啟 Amazon.com 網站的頁面。
測試程式碼同時使用了 Selenium 和 Appium 函式庫來與行動裝置上的瀏覽器互動。 Appium 用戶端物件用於初始化裝置驅動程式、定義 Android Chrome 瀏覽器並對其進行控制。 Selenium 用於定義「所需功能」對象,該對象透過 Selenium 對象「By」來控制裝置驅動程式、行動瀏覽器並與 Web 應用程式(在本測試中,使用的是 Amazon.com 網站)進行互動。使用這些物件可以存取行動瀏覽器的 Web 元素。
測試在 SeeTest平台-基於雲端的平台它為開發以及 Web 和行動測試自動化提供了大量的瀏覽器和行動裝置支援。作為對比,還有測試,它會打開 cloud.seetest.io 在 Mac 平台上的 Google Chrome 瀏覽器中開啟網站頁面,然後尋找頁面上的幾個連結並點擊這些連結。本例中僅使用 Selenium 對象,這些對象控制 SeeTest 雲端平台上的遠端瀏覽器並執行測試中指定的操作。請查看下方連結中的測試程式碼。
第二個測試也在 SeeTest 平台上執行,可以運作了。 兩種測試都可以是 下載已編譯並啟動。請使用“mvn clean install”指令進行安裝。 由於這兩個測試都應該在 SeeTest 平台上執行,因此在啟動測試之前,請勿忘記將 SeeTest 帳戶中的存取金鑰新增至系統變數。
上面的第一個範例展示了 Appium 和 Selenium 測試,也是 Web 和行動測試自動化的一個範例。這種情況通常發生在 Web 應用程式需要在桌面和行動瀏覽器上運行的時候。
使用 Appium 和 Selenium 實現原生行動應用程式自動化的範例
除了需要支援多種行動和桌面平台上的各種瀏覽器之外,現代應用程式可能擁有多種類型的用戶端:Web 用戶端、桌面用戶端和行動用戶端,而這些用戶端又可以在各種作業系統下的不同硬體平台上運行。對於品質保證工程師而言,這意味著必須對所有可能的硬體、作業系統和瀏覽器組合進行測試。例如,當使用兩個不同的客戶端時,一個使用者透過行動客戶端執行某個操作,而另一個使用者透過 Web 用戶端取得該操作的結果,反之亦然。
例如,社交網路上的貼文需要由不同的客戶端進行審核。另一個例子是聊天,行動用戶端用戶發送訊息,網頁用戶端用戶接收訊息,反之亦然。從測試案例的角度來看,它必須模擬兩種客戶端(行動用戶端和網頁用戶端)之間的互動。因此,在一個測試中,將同時使用 Appium 和 Selenium 框架,這種類型的測試結合了 Selenium 和 Appium 的測試方法。在這個測試中,Appium 物件用於管理行動設備,而 Selenium 物件用於管理和與桌面平台上的瀏覽器互動。此外,該測試也應在 SeeTest 雲端服務上執行。
至於實作方面,這些客戶端的測試可以編寫在單獨的模組中,並使用 SeeTest 對相應的實例並行執行。在這個例子中,Selenium 和 Appium 相輔相成。這是 Web 和行動端測試自動化的另一個例子。
Appium框架是基於Selenium的嗎?
最後,這裡要說明一下原生行動應用程式的自動化。當我們為它們編寫 UI 測試並與行動頁面上的元素互動時,我們會透過一個物件來存取這些元素,該物件是繼承自 org.openqa.selenium.remote.RemoteWebElement 的 io.appium.java_client.MobileElement 類別的實例。這意味著,原生行動應用程式的測試會隱含地使用 Selenium 來存取行動頁面元素。
結語
總而言之,Selenium 和 Appium 並非各自獨立的框架,不能分別僅用於 Web 和行動裝置測試自動化。這兩個框架可以結合使用,在一個測試中用於測試行動瀏覽器中的 Web 應用程序,並實現涉及與 Web 和行動用戶端互動的複雜測試案例。所有這些測試案例都可以輕鬆執行。 SeeTest平台簡而言之,SeeTest 提供多種行動裝置和瀏覽器用於測試。此外,SeeTest 在用於執行 Web 和行動測試自動化的雲端平台中名列前茅。
為了親眼看看這一切是如何運作的, 點此免費試用.

