天天看點

《手機測試Robotium實戰教程》—第1章 1.3節移動端自動化測試工具的選擇

本節書摘來自異步社群《手機測試robotium實戰教程》一書中的第1章,第1.節,作者楊志偉,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

1.3 移動端自動化測試工具的選擇

之是以需要選擇,是因為可選項太多了,不同的平台,會有很多不同的自動化測試工具供選擇,其中既有商業性的收費工具,也有開源免費的自動化測試工具。

這本書的主題robotium就是其中一種開源的自動化測試架構,在正式展開前,先看看當下還有哪些在android測試方面比較常用的測試架構可供選擇。

1.3.1 appium

appium也是一種自動化測試架構,可以用來測試natvie、hybrid和mobile web app,appium最吸引人的一點是,它既支援android方面的自動化測試,又支援ios方面的測試。

它還支援使用不同的程式設計語言編寫測試代碼,但這種便捷性是以犧牲一部分執行速度換來的,因為這需要額外的轉換時間,轉換成對應的可操作的底層的測試架構。appium在android方面底層使用的測試架構是uiautomator和instrumentation,ios則使用apple提供的uiautomation。明白了這點,也就不奇怪為什麼appium可以支援跨程序地操作ios的測試了。

appium經常被“吐槽”的還有一點,就是穩定性還有待提升,但它的這些優點也是很明顯的,參與的人越來越多,貢獻的力量也就越大,經過一段時間的發展,相信appium會更加穩定和流行。

國内testerhome社群也有不少appium方面的資料和讨論。

1.3.2 uiautomator

uiautomator是google官方提供的一款自動化測試架構,其主要特點是支援跨程序的操作,這一點極大地友善了對應用外控件的操作。

當然了,uiautomator在提供便捷性的同時,也存在着一些不足,如隻支援android sdk platform、api 16及以上的。除此之外,它對webview的支援也不好。

還有一點就是調試很不友善,要調試首先需要在啟動的指令行配置好調試項後才能進行,啟動後還需在eclipse中建立remote java application選項,相對來說比較麻煩。雖然也可以通過輸出log的形式來調試,但不如其他工具有插件支援調試方式便捷。

uiautomator的編譯運作也比較麻煩,測試代碼一有修改,就需要重寫、編譯産生jar檔案,然後還要将jar檔案push到手機指定的目錄下才能使用,雖然可以通過批處理檔案将這些步驟封裝起來,但還是略顯麻煩。

想了解更詳細的資訊,請到它的官方網站,那裡可以檢視uiautomator的api詳細介紹、指令行運作uiautomator的參數及指令解釋,以及一些入門的例子。

1.3.3 robotium

robotium也是一款開源的自動化測試架構,可以支援native和hybrid的自動化測試,api使用起來簡單友善,執行速度也快。

但robotium有一個比較大的局限性就是不支援跨程序的操作,但也有相應的解決方案,後面章節會介紹到。

robotium在adt插件的支援下,可以很簡單地在eclipse下調試運作,這一點比uiautomator便捷多了。

robotium官方網站的wiki标簽下還提供了一些簡單易懂、容易上手的示例項目,在這裡也可以檢視robotium的api文檔,robotium的方法命名很直覺,一般通過方法名就可以知道這個方法所能實作的功能。

最後,robotium是開源的,托管在github .

它的代碼量不大,可以很容易地進行二次開發,然後定制出自己需要的功能。

當然還有其他的自動化測試架構可供選擇,如monkey、monkeyrunner、testdroid(商業)、eggplant(商業)等,每種工具都有優缺點,關鍵在于根據産品的特性,選擇一款适合的自動化測試工具,不要盲目跟風,合适才是最重要的,當然可以混合使用多種自動化測試工具來克服一些工具本身的局限性,以便得到更好的自動化測試效果。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

繼續閱讀