淺談移動端自動化測試框架和工具



Hello,World!



最近時間相對比較寬松,聊聊自己對目前移動端自動化框架或者工具的認識。有不對之處望指出。
1.Monkey
Monkey是谷歌自家東西,它可以生成一些偽隨機用戶事件流例如模擬用戶的點擊等手勢,以及一些系統(tǒng)級的事件。它應該是目前流行移動端自動化框架或者工具的一個鼻祖。
Monkey 更應該算是一個客戶端性能測試工具,測試客戶端應用的穩(wěn)定性,健壯性還是相當不錯的。Monkey 也無需而外安裝,在android SDK的platform-tools目錄下。在進行SDK環(huán)境配置時可以把該路徑配置到系統(tǒng)變量的path中,便可以直接通過命令進行使用。
Monkey 的谷歌官方地址是:http://www.android-doc.com/tools/help/monkey.html ?
2.Monkeyrunner
Monkeyrunner 同樣是android SDK 自帶的測試工具,看名字還跟Monkey很像,但是他們的作用完全是在不同領域。Monkey 更多用于客戶端性能,發(fā)送的隨機事件是基本沒法控制的,而Monkeyrunner則強大很多,可以用于做功能測試,回歸測試并且可以自己定義測試擴展,靈活性較大。
Monkeyrunner 工具提供了一些API,可以通過該API來控制Android設備或者模擬器。可以通過編寫python腳本去安裝Android 應用,運行應用,發(fā)送模擬按鍵,手勢,截圖等等,可以說你能在設備中干的事情,Monkeyrunner 都能干。
網(wǎng)上已經(jīng)很多人分享了Monkeyrunner錄制腳本和回放的腳本,可以下載下來,直接放到android SDK的platform-tools目錄下,通過命令 monkeyrunner 腳本名 便可以啟動錄制器,錄制你需要的自動化測試腳本或者回放。
Monkeyrunner 足夠強大了,但是錄制的腳本是以坐標軸來作為定位方式,而安卓設備類型眾多,各種分辨率,所以移植性不好。
Monkeyrunner 的谷歌官方地址:http://www.android-doc.com/tools/help/monkeyrunner_concepts.html
3.Uiautomator
上面提到Monkeyrunner 的定位是以坐標軸的方式,移植性差。那么谷歌還學習 ios 的uiautomation,推出了Uiautomator 則很好的解決了這點。Uiautomator 是通過以控件的方式來定位,當然也是支持坐標軸的方式來定位。Uiautomator是Android 4.1后加入的,所以僅支持Android 4.1 和以上的版本,但是不支持webview。
Uiautomator 谷歌官方地址:http://android.toolib.net/tools/help/uiautomator/index.html
4.Robotium
Uiautomator 僅僅支持4.1以上的版本,然后國內(nèi)用戶Android 升級較慢,還存在非常多的4.1以下版本,所以Uiautomator 貌似也就變得不能滿足要求了。?
Robotium 則很好的解決了這點,它支持所有的Android 版本,是居于原生的Instruments 二次封裝的一個框架。最新版本好像已經(jīng)更新到了5.0.1, 穩(wěn)定性等都不錯。而且官方還出了一個錄制插件 Robotium Recorder(http://robotium.com/products/robotium-recorder)不過這個插件是需要收費的。
Robotium 只支持Java語言開發(fā)并只支持Android,并不支持跨進程。
Robotium的中文地址:http://www.robotium.cn/
5.Appium
Appium 官方宣稱支持同時支持Android, IOS, FirefoxOS。并且appium 你可以用任何你熟悉的開發(fā)語言來進行編寫測試用例。例如Java, Python, Ruby, PHP, JavsScript, Object-C, C#.....
Appium 在Android 上如果是大于4.1 則用的是uiautomator, 以下版本則使用Selendroid(selenium for android). IOS上采用uiautomation庫做支持。
Appium 的穩(wěn)定性相對較差點,但是同樣采用的控件的定位方式對不懂java而熟悉其它語言的來說還是相當不錯的選擇。
Appium 官方地址:http://appium.io/
有個論壇也可以看看:http://testerhome.com/
以上均是開源項目或者部分開源,源代碼都可以找到,感興趣可以自己下源代碼看看。當然像百度也有一個移動端測試框架叫 云cafe, 阿里好像也有個,但是都沒去接觸,不了解情況。
傳一張圖,看懂很多:

?? - end -??
覺得內(nèi)容還不錯的話,給我點個“在看”唄


