最棒的 5 款開源 Android/iOS 自動化工具

jopen 9年前發布 | 57K 次閱讀 Android

現今自動化測試在產品測試中占有很重要地位。實現測試的自動化有很多積極的意義,比如盡量縮短測試執行時間,關鍵發布階段在更短時間保證更大的測試覆蓋, 產品開發階段可靠和重復運行確保不引入回歸問題;并且它也能最大可能地減少在重復性回歸周期由于人的錯誤或疏忽帶來的風險。

市場上有大量的工具可以用來做測試自動化,其中有開源的也有付費的。盡管使用付費的或者開源的工具各有優劣,后一類的工具還是在各自動化測試社區被廣泛使用。根據你的項目需求選擇恰當的自動化工具是非常棘手的。

下面是排名前 5 的開源 iOS 和 Andriod 自動化工具。

1) Calabash (適用于安卓和 iOS)

最棒的 5 款開源 Android/iOS 自動化工具

 (圖片翻譯:Calabash 讓你能夠編寫和執行手機應用的接受測試,它是跨平臺的,支持安卓和 iOS 的原生程序,它是開源和免費,由 Xamarin 開發并維護。)

這是什么?-Calabash 是支持安卓和 iOS 開源的接受自動化測試框架。它為安卓和 iOS 的自動化提供了一個獨立的庫。它支持 cucumber ,從而可以讓你采用 BDD (行為驅動開發)英語母語的方式表達你的應用。

Calabash 提供了一座橋讓 cucumber 測試和驗證能在安卓和 iOS 上執行。Cucumber 測試是編寫為一組語句列表,語句有若干數目的測試場景組成。Cucumber 中的語句是用 Ruby 定義的。

在 Calabash 中,一條 cucumber 語句只能定義一次,但是可以在 cucumber 腳本的不同場景中運行多次。

實際的測試是用 Gherkin 編寫,支持 Ruby 代碼,并且運行在 cucumber 框架中。

優點

  1. 大型的社區支持。

  2. 簡單的,富有感染力的類似于英語的測試語句。

  3. 支持屏幕所有的動作,比如滑動,縮放,旋轉和敲擊。

  4. 大型而熱情的社區。

  5. 跨平臺開發的支持(相同的代碼在安卓和 iOS 都適用)

缺點

  1. 當測試步驟失敗的時候,后續步驟會被忽略。這個會導致漏掉更嚴重的產品問題。

  2. 跑測試需要花費時間應為默認是總是在最開始安裝應用,但是這個設定可以在代碼添加鉤子給覆蓋掉。

  3. 需要 Calabash 框架在安裝在 iOS 的 ipa 文件中。

  4. 在 iOS 上我們必須要應用的代碼。

  5. 對 Ruby 之外的語言不友好。

2) Appium (支持安卓和 iOS)

最棒的 5 款開源 Android/iOS 自動化工具

這是什么 –Appium 是 Sauce實驗室提供給原生,混合,和網頁手機應用的開源自動化測試框架。Appium在框架中的庫函數調用后臺的Appium服務器從而操作連接的設備。它使用Selenium的 WebDriver來和iOS和安卓應用交互,它內部使用 JSONWireProtocol。

不像Calabash它不是僅僅支持用Ruby開發, 借助Selenium WebDriver的支持,Appium能夠按你選擇的語言來開發,從Java,Python到Ruby,只要該語言被Selenium WebDriver支持。

一 個 Appium 服務器是部署在Node服務器上的。 可以通過一組Node明年來啟動一個Appium 服務器。如果使用Appium獨立服務器作為你的應用服務器 (可以從Appium網站下載), 檢查員工具提供了 定位/甄別/操作 你的應用中的所有定位器的能力。

優點

  1. 支持多語言。

  2. 無需訪問源碼。

  3. 跨平臺腳本編程能力。

  4. 大社區的支持。

  5. 支持在Mac平臺錄制。

  6. 能夠使用Appium服務器程序的‘定位’工具提取標識符。

  7. 由Appium服務器桌面程序內建支持‘Selendroid’。

  8. 還能使用供應商的框架: UIAutomation用于iOS,  UIAutomator和Selendroid分別支持android 4.2+ 和 2.3+。

  9. 支持物理設備和模擬器。

  10. 支持原生,混合和手機網絡程序的自動化。

缺點

  1. Appium服務器桌面程序常常有不穩定版本。

  2. Window操作系統上對服務器桌面應用不支持腳本錄制。

3) Robotium (Android)

最棒的 5 款開源 Android/iOS 自動化工具

Robotium 是什么 –  Robotium 是一個開源的測試框架,它可以用于功能測試,系統測試,驗收測試等場景。Robotium 和 Selenium 非常相似,不同的是它僅能用于 Android。它遵循 Apache License 2.0 開源協議。

由于它簡單易用,并且能夠創建出強大、健壯性良好的自動化測試場景,Robotium 正在受到越來越多的自動化測試社區用戶的歡迎。

Robotium 使用運行時綁定 GUI 組建的方式。使用時將測試用例庫,以一個應用程序的形式安裝到 Android 的設備或者模擬器上,以此提供一個真實的環境用以執行測試。

亮點 

  1. 讓編寫測試腳本工作變得輕而易舉.

  2. 能夠對預裝應用進行自動化測試.

  3. 自動追蹤當前的 activity.

  4. 由于采用了運行時綁定 GUI 組件的方式,與 Appium 相比,它能夠更加快速穩定的執行測試.

  5. 可以在沒有源代碼,也不知道應用具體實現的條件下進行測試.

  6. 支持 Activities, Dialogs(對話框) ,Toasts, Menus(菜單), Context Menus(上下文菜單)和其他 Android SDK 的控件.

不足

  1. 無法處理 flash 和 web 組件.

  2. 僅能夠支持 Java 開發環境.

  3. 在較早期的設備上運行不夠流暢.

  4. 由于不支持 iOS 設備,當自動化測試同時覆蓋 android 與 iOS 的情況時,測試會被中斷.

  5. 沒有內置的記錄和回放功能. 使用記錄功能需要 TestDroid 和 Robotium Recorder 這樣收費工具。

最棒的 5 款開源 Android/iOS 自動化工具

Frank是什么 - Frank 是一個 iOS 應用程序的自動化測試框架,它提供了一種使用 Cucumber 自然語句書寫測試用例的能力。

Frank 需要被編譯進被測試的應用程序,這意味著你的源代碼必須被修改。它是一個工具,使用的是Cucumber 和 JSON 的組合命令,并將這些命令發送到你本地應用程序中的一個服務器。然后,利用 UISpec 來執行這些命令。

優點


  1. 助于 Cucumber 框架,可以使用容易理解的自然語句書寫測試用例。
  2. 自帶審查工具。
  3. 顯示出了高效性,對于擁有 Selenium 和 Cucumber 自動化測試框架使用經驗的團隊。
  4. 活躍的社區支持。
  5. 持續擴展的功能庫

不足


  1. 有限的手勢支持功能。
  2. 設備上跑測試有點困難。
  3. 需要修改配置文件才能在真實設備上運行。
  4. 缺少記錄功能。

5)UIAutomator (Android)

最棒的 5 款開源 Android/iOS 自動化工具

UIAutomator 是什么 - UIAutomator 是來自 Google 的測試框架,提供 Android 原生 app 和游戲的高級 UI 測試。它是一個 java lib,既有創建功能的 UI 測試的 API,又有運行測試的執行引擎。 Android SDK 中就帶有。有很多教程幫助新手入門。它的優勢在于,在運行訪問不同進程時,給 JUnit 測試用例特權。盡管對于原生 app 的自動測試,它是又好又簡單,但是對于自動測試 web view 的支持則是那么的有限近乎不支持。它只支持 API level16 及以上的設備,但這并沒有多大問題,畢竟現在大部分都已在 API level19 及以上了。

優點
1. 簡單易用,教程豐富;
2. Library 支持且由 Google 社區維護;
3. 第三方付費集成云端的測試管理。

缺點
1. 只支持 Android4.1 和更高;
2. 不支持腳本錄制;
3. 支持只專注于 Java;
4. 無法獲得當前的 Activity 或 Instrumentation;
5. 當前不支持 WebView 或混合 app;
6. Library 只支持 Java,因此想集成到 ruby 的 cucumber(譯注:Cucumber 是 BDD(行為驅動開發)中成熟的一個框架,官方網址: http://cukes.info/)框架中則比較困難,盡管 Java 已有 BDD框架可用,可實際上卻用的很少。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!