安卓App壓力測試 - Monkey的使用

Monkey是安卓開發工具包SDK自帶的一個命令行工具,可用於安卓App的壓力測試,其原理是通過命令行向手機發送隨機事件的指令,隨機事件包括點擊,劃屏和輸入等操作,這些操作都是隨機不可控的,可控的是需要操作的App,每次操作間隔的時間以及隨機事件的次數等。

Monkey的使用步驟是:

  1. 安卓手機裝好待測App,跟電腦連接,或者從SDK中打開安卓模擬器
  2. 打開命令行,輸入adb start-server開啓adb服務
  3. 輸入adb devices測試手機連接是否正常
    這裏寫圖片描述
  4. 輸入adb shell進入手機shell界面
    這裏寫圖片描述
  5. monkey -p {App包名} {次數}
    第5步就是調用monkey命令對安卓App進行壓力測試。
    例如:monkey -p com.tencent.mobileqq 100
    即對包名爲com.tencent.mobileqq的App發送100次隨機事件的命令,發送完成後手機會自動運行該App並進行一系列隨機操作。
    這裏寫圖片描述

Monkey命令的擴展:
monkey命令還可以帶其它參數,如–throttle 150,這個參數表示每個隨機事件之間的間隔時間爲150毫秒。
monkey -p com.tencent.mobileqq –throttle 150 100
表示一百個隨機事件,每個事件間隔時間150毫秒

還可以設置輸出的log的級別,使用參數 -v 10,如果沒有調用這個參數,默認是-v 0,也就是說除了啓動App,提示測試完成和最終結果,沒有其它詳細信息了,這裏不利於App崩潰原因的追蹤。數值越大,log也就越詳細。
monkey -p com.tencent.mobileqq -v 10 100

如果想把運行的log保存到本地,可以不需要進入到shell界面中,直接用adb命令連起來寫,例如:
adb shell monkey -p com.tencent.mobileqq 100 > c:\monkey\test.txt
這裏寫圖片描述

查看該路徑下面的文件
這裏寫圖片描述

查看txt文本文件
這裏寫圖片描述

一般來說,我們可以一次發送5萬次隨機事件的請求,每個請求之間間隔150毫秒,完成這個測試大概需要40分鐘左右,完成以後就可以在設置的本地路徑下面找到報告的文本文件,若出現App崩潰的問題,會有詳細的log記錄。
這裏寫圖片描述
這裏表示騰訊QQ在執行第9061次時間的時候發生了崩潰,我們只需要向App開發組提供這份log就可以去跟蹤崩潰的原因了。

綜上,我們做安卓壓力測試的一個完整命令是
adb shell monkey -p com.tencent.mobileqq -v 10 –throttle 150 50000 > c:\monkey\test.txt

另外有一個小彩蛋,在執行這個命令的時候,由於安卓手機可以下來打開通知欄,因手機的不同,播放音樂也會在通知欄裏面,很可能會點到播放音樂,所以採用真機測試的時候,將手機調爲振動或者無聲吧,如果想製作氣氛並且把放歌的責任推卸到monkey身上,請無視上面的建議。
還有其它的參數,比如設置點擊屏幕,home鍵,back鍵,音量鍵,劃屏和輸入這些操作的比例,也可以實現,因爲使用不太多,這裏就不詳細介紹了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章