1. 程式人生 > 實用技巧 >App穩定性測試-Monkey

App穩定性測試-Monkey

穩定性測試Monkey

  • 概念介紹和原理實現

1、“猴子測試”是指沒有測試經驗的人甚至對計算機根本不瞭解的人(就像猴子一樣)不需要知道程式的任何使用者互動方面的知識,如果給他一個程式,他就會針對他看到的介面進行操作,其操作是無目的的、亂點亂按的。

2、利用socket通訊的方式來模擬使用者的按鍵輸入,觸控式螢幕輸入,手勢輸入等,看裝置多長時間會出異常。

  • Monkey程式介紹

1、Monkey程式由Android系統自帶,可以執行在模擬器裡或者真是裝置中執行,使用Java語言寫成,在Android檔案系統中的存放路徑是:/system/framework/monkey.jar,該程式需要由一個名為“Monkey”的shell指令碼來啟動執行。

2、Monkey向系統傳送偽隨機的使用者事件流,實現對正在開發的應用程式進行壓力測試。

  • 測試環境搭建
  1. PC端安裝adb(不清楚的可自行百度查詢)
  2. 手機通過USB連線電腦,自動安裝usb驅動
  3. 設定手機螢幕為常亮,防止手機進入鎖屏狀態
  4. 需要登入的App,用測試賬號先登入(最好由開發提供一個遮蔽賬號退出功能的APK包,防止執行過程中賬號被退出登入)
  • Monkey命令介紹

monkey -p com.hosjoy.ssy -s6515 --pct-touch 45 --pct-motion 20 --ignore-security-exceptions --ignore-crashes --ignore-timeouts --ignore-native-crashes --throttle 1000 -v -v -v 5000000 >/mnt/sdcard/monkey.txt

常用指令介紹:
-p :指定有效的包名(如果不指定,則允許系統中所有有效的package),若需執行多個包,則後面繼續加-ppackage

-s :指定產生隨機事件種子值,相同的種子值產生相同的事件序列

-v:指定列印資訊的詳細級別,一個-v增加一個級別,-v-v-v為最詳細

-throttle:每個事件結束後的間隔時間(毫秒)——降低系統的壓力(如不指定,系統會盡快的傳送事件序列)

-pct-touch <percent>:跳轉觸控事件的百分比

-pct-motion <percent>:調整motion事件百分比(線滑動事件如從左到有滑動解鎖)

--ignore-crashes:忽略崩潰

--ignore-timeouts:忽略超時

--ignore-security-exceptions:忽略安全異常

詳細指令,可自行百度檢視

  • Monkey執行與停止

5.1 Monkey執行

1、PC端adb shell+monkey命令(根據不同app自行修改對應的引數)

2、將常用monkey命令寫成bat指令碼,執行前對應修改包名與其他引數

5.2 Monkey停止

1、使用“adb shell ps | grep monkey”命令,查找出monkey的程序號;

2、再使用kill程序號,殺掉monkey的程序

備註:如果monkey程序查不到,重啟手機adbreboot時程序也被殺死

  • Monkey結果分析

1、按關鍵字進行搜尋,ANR、Exception、Crash、Error

2、找到有問題的地方,檢視上下文資訊

3、注意第一個switch上下文資訊

4、檢視monkey裡面出錯前的一些事件動作,可以手動執行該動作

5、進行問題復現,可以使用之前執行的monkey命令在執行一遍,注意seed值要一樣

為簡化統計操作,可使用bat指令碼進行統計,使用如下:

  【測試結果分析】

(1)、ANR問題(程式無響應):在日誌中搜索“ANR"(application no response)

  (2)、閃退問題:在日誌中搜索"crash"

  (3)、異常:搜尋"exception"

(4)、強制退出:搜尋"force closed"

常見的Crash錯誤資訊如下: