官术网_书友最值得收藏!

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會更加穩定和流行。

讀者可以訪問Appium的官方網站http://appium.io/,在這里可以獲得關于它的一些詳細介紹。

國內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的參數及命令解釋,以及一些入門的例子。

官方網站:http://developer.android.com/tools/testing/testing_ui.html。

1.3.3 Robotium

Robotium也是一款開源的自動化測試框架,可以支持native和hybrid的自動化測試,API使用起來簡單方便,執行速度也快。

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

Robotium在ADT插件的支持下,可以很簡單地在Eclipse下調試運行,這一點比uiautomator便捷多了。

Robotium官方網站的wiki標簽下還提供了一些簡單易懂、容易上手的示例項目,在這里也可以查看Robotium的API文檔,Robotium的方法命名很直觀,一般通過方法名就可以知道這個方法所能實現的功能。

最后,Robotium是開源的,托管在GitHub https://github.com/RobotiumTech/Robotium。

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

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

主站蜘蛛池模板: 清丰县| 徐闻县| 美姑县| 成都市| 丰原市| 襄城县| 莱芜市| 高淳县| 横山县| 五寨县| 临江市| 巴青县| 同心县| 前郭尔| 昂仁县| 黄浦区| 乐都县| 宣城市| 青海省| 灵丘县| 自治县| 乐清市| 南雄市| 井陉县| 西峡县| 阿克陶县| 加查县| 巴彦县| 桂平市| 吉木萨尔县| 泰兴市| 汶上县| 久治县| 木里| 东丰县| 法库县| 惠安县| 岢岚县| 通河县| 徐水县| 陆丰市|