最近 boss讓作關於apk測試工具的調查,最後整理出以下,如今網絡上的資料並非不少,本身一步步通過查找測試到完成領導的預約任務到提交報告。 html
由於是份報告因此有些地方並非很具體,能夠參考給出網址。 python
若是有什麼不足還請告知及時補充。 android
apk測試工具調查 shell
簡介 瀏覽器
android SDK裏自帶的測試工具monkey 和 monkeyrunner。 網絡
1. mokey session
Monkey工具直接運行在設備或模擬器的adb shell中,生成用戶或系統的僞隨機事件流,主要應用在壓力和可靠性測試上,運行該命令能夠隨機地向目標程序發送各類模擬鍵盤事件流,而且能夠本身定義發送的次數,以此觀察被測應用程序的穩定性和可靠性。 app
2. monkeyrunner electron
monkeyrunner工具則是在工做站上經過API定義的特定命令和事件控制設備或模擬器,主要可應用於功能測試,迴歸測試,而且能夠自定義測試擴展,靈活性較強,而且測試人員能夠徹底控制。 ide
目前的缺陷:
•不支持中文字符的輸入(只能輸入ASC碼中存在的字符)
•基於UI操做,一旦遇到複雜的應用,測試代碼的複雜度指數增加;測試設備性能不一樣,須要根據設備的快慢對操做加時延;腳本的運行速度慢
•沒法將測試結果抓取出來,只能採用截圖比較。沒法準確統計測試數據。
•drag方法只能實現簡單的滑動屏幕的操做,不能進行復雜的拖拽。微博客戶端的下拉刷新操做沒法模擬出來。
下面主要說明monkeyrunner的使用。
monkeyrunner的使用 參考網站 http://www.51testing.com/html/59/n-242759.html http://blog.csdn.net/zm2714/article/details/7980634 http://www.cnblogs.com/youxilua/archive/2011/11/12/2246576.html
運行monkeyrunner以前必須先運行相應的模擬器,否則monkeyrunner沒法鏈接設備。
shell操做的截圖以下:
Hierarchy Viewer 工具使用簡介 此device.touch(x,y,TouchPressType-觸摸事件類型)的觸摸事件的座標獲取工具 此方法使用時要開啓hierarchyviewer工具獲取對應的座標,開啓方法 另起cmd 定義到sdk的tools目錄 執行shell命令hierarchyviewer.bat。 詳情請參照:http://tech.it168.com/a2011/0802/1226/000001226690.shtml
使用截圖
總體效果圖以下:
|
總結:
1.monkeyrunner提供的操做有限,適合處理反覆點擊等小範圍的操做,用來測試一個點是比較好的。能夠作軟件跑分、瀏覽器跑分等 穩定性測試,或是用來安裝JUnit寫好的測試app。
2.monkeyrunner不適合處理連續的操做。一旦進入到應用層,由於drag方法的不穩定,跳轉就須要用點擊按鈕來代替,這樣沒法模擬用戶真實的操做。 用工具來定位座標、查找各個按鈕的id,消耗時間。一旦UI改變,腳本可能就沒法使用。
3.monkeyrunner或者其餘基於UI的腳本測試,對所測試系統的穩定性要求比較高。若是系統或者軟件很是容易奔潰,就會終端測試腳本,沒法自動化。
4.基於UI的自動化測試,測試結果經過截圖判斷,沒法脫離人工干預。
5.綜上,基於UI的自動化測試事倍功半,是一條不歸路。建議根據Android自己的特色,合理劃分軟件層次。測試部門用JUnit來測試API,完成邏輯測試;用人工來完成場景測試。
我的意見:
綜合上述觀點,monkeyrunner 符合此次調研的要求,但就目前的版原本說並不適用於平時的測試工做。
附:兩款雲端測試工具
Testin雲測試
優勢:測試點更精細跟準確。
http://www.testin.cn/portal.action;jsessionid=FCC8344620201F91DF42D092AD7142F2?op=Portal.index
測試分爲 兼容測試、性能測試、功能測試三大部分。
|
這是以 點菜寶爲例上傳測試後的結果概要截圖
|
百度雲衆測
優勢:提供APP評測、用戶體驗反饋、問卷調查等。
http://developer.baidu.com/yunzhongce
|
就雲測試來講,兩款雲端測試工具 我更傾向於前者,也就是Testin雲測試,測試更具象化。
然後者 更親向於 用戶體驗與反饋。
---劉利濤
2013-4-26日