手機自動化測試有哪些開源工具可以選擇?

手機自動化測試有哪些開源工具可以選擇?

這篇文章主要討論手機應用程式自動化測試有哪些開源工具可供選擇?

考量的因素會有哪些? 優缺點為何? 最後筆者建議的工具。

 

手機應用程式的種類

手機的應用程式大致非為三大類。

  • 單純網站的形式,只要用手機上的瀏覽器就可以瀏覽。該網站會根據手機的瀏覽器顯示適當的大小與版面。
  • 手機應用程式。也就是到 googlePlay 下載應用程式使用。
  • Hybrid: 手機應用程式 + 網站。該手機應用程式內有網頁的元件。

這三類的自動化測試有什麼不同呢?

如果之前對於 Web Selenium 自動化測試有經驗的來說,

Mobile Web 是完全相同的,只不過執行的環境變成 Emulator 或是實體手機。都是直接透過瀏覽器進行自動化測試。

對於 Native App or Bybrid 來說,主要的不同在於如何locate 到這個 app 的相關 UI 元件。

native App 自動化測試與 Selenium Web 自動化相同的是可以 Locate by Name, Locate by Xpath..等

而相異的地方在於使用的工具會有所不同。NativeApp的 UI 元件位置,我們必須使用其他工具(UIAutomatorViewer)來判別。

 

 

為什麼要做手機自動化測試?

與網站不同的是手機應用程式著重於簡單容易使用。

手機測試最大的挑戰在於手機的型號、尺寸、作業系統版本較多。

因此整個相容性測試的 Matrix 較為複雜。

如下圖所示:

Mobile testing Matrix

(資料整理Cognizant.)

mobile application challenges 8

(資料整理 softwaretestinghelp)

 

Appium 是未來手機自動化測試的王道

http://appium.io/slate/en/master/?java#appium-philosophy

筆者認為 Appium 是未來手機自動化測試的王道! 為什麼呢?

參考 appium 四個主要設計理念:

• 手機應用程式不需要為了自動化測試而做特別的修改。
• 不需要綁定特定語言或是架構。可以使用 Python 或是 Java 來做 Android 或是 iOS 自動化測試
• 建構在目前 Selenium的基礎上做自動化測試。對於使用 Selenium的使用者來說是一個福音。
• 自動化測試架構保持開源免費。

筆者要特別強調這點: “不需要綁定特定語言或是架構”

透過 Appium WebDriver 這層的幫助,讓我們可以對 android 或是 iOS 作自動化測試,

程式語言也可以依據自己的偏好使用,不會受到 Android or iOS 限制的影響。是不是很方便?

 

 

 Appium的限制

  • 只支援 Android API 17以上。如果有Android API 10-19間需要做自動化,替代方案是 Seledroid
  • 圖形辨識:手機有許多的圖形。目前 Appium還沒有提供相關圖形辨識的功能。

在許多情況下,這兩個限制通常不是問題。因為除非需要該手機應用程式支援很舊版本的 android ,

圖形辨識的部分雖然 appium 沒有直接支援,但是可以透過其他工具解決。

 

開源工具的選擇比較

Comparing Android Testing Frameworks

(表格引用http://testdroid.com/)

 Appium需要的工具環境

以用 Java 開發為例子,進行Android 與iOS 手機自動化測試需要的工具如下:

Android iOS
•Java (version 7 or later)
•The Android SDK API (version 17 or later)
•An emulator
•Eclipse

TestNG• The Appium server
• The Appium client library (Java)
• The Selenium Server and WebDriver Java library
• The APK Info app (Optional)
• Mac OS 10.7 or later
• Xcode (version 4.6.3 or later; 5.1 is recommended)
• Simulator
• Safari on simulator
• Java Version 7
• Eclipse
• TestNG
• The Appium Server
• The Appium client library (Java)
• The Selenium Server and WebDriver Java library

 

Leave a Reply

Your email address will not be published. Required fields are marked *