Monkey壓力測試--用來作穩定性測試

Monkey壓力測試

1、什麼是Monkey

Monkey是Android SDK附帶的一個工具,一個作app壓力測試的工具經過某些Linux命令,產生必定數量或必定時間內的隨機模擬用戶操做的事件, 如點擊、按鍵、手勢等, 以及一些系統級別的事件。一般也稱隨機測試或者穩定性測試。html

2、測試環境搭建

安裝Android SDK 並配置環境變量便可。可參考:JDKadb/android環境變量配置完整教程 android

3、測試步驟

一、本地建立白名單文件,如:whitelist.txt,將包名添加到該文件中shell

如:com.ubtechinc.cruzr.advert
com.ubtechinc.cruzr.aiui
com.ubtechinc.cruzr.behavior
com.ubtechinc.cruzr.calendar
com.ubtechinc.cruzr.clock
com.ubtechinc.cruzr.coreservices
com.ubtechinc.cruzr.cruzralbum
com.ubtechinc.cruzr.cruzrbootwizard
com.ubtechinc.cruzr.dance
com.ubtechinc.cruzr.freeguide
com.ubtechinc.cruzr.introduce
com.ubtechinc.cruzr.launcher
com.ubtechinc.cruzr.launcher2
com.ubtechinc.cruzr.map
com.ubtechinc.cruzr.music
com.ubtechinc.cruzr.navigation
com.ubtechinc.cruzr.pccontrolstub
com.ubtechinc.cruzr.power
com.ubtechinc.cruzr.servicesupport
com.ubtechinc.cruzr.systemupdate
com.ubtechinc.cruzr.syswarn
com.ubtechinc.cruzr.timer
com.ubtechinc.cruzr.user
com.ubtechinc.cruzr.video
com.ubtechinc.cruzrpowersettings
com.ubtechinc.cruzrrosexceptionstats
com.ubtechinc.settingsapp

二、電腦鏈接到設備,將測試應用白名單push到Android系統,如:ide

adb push d:/Monkey/whitelist.txt /mnt/sdcard/data/whitelist.txt工具

三、登陸adb:adb shell測試

四、調用Monkey命令ui

monkey --pkg-whitelist-file /mnt/sdcard/data/whitelist.txt -s 101 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 50000 |logcat -v time&>/mnt/sdcard/data/monkey_1019.logspa

 

參數說明:指針

--pkg-whitelist-file /mnt/sdcard/data/whitelist.txt //測試應用白名單

--s 50 //種子序列,出問題須要用相同種子值進行復現;沒測出問題,下次須要從新修改種子值再跑

--pct-touch 70 //觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)

--pct-motion 20 //動做事件的百分比(動做事件由屏幕上某處的一個down事件、一系列的僞隨件機事和一個up事件組成)

--pct-trackball 10 //表示調整軌跡球事件的百分比(軌跡球事件由一個或多個隨機移動組成,有時還伴隨有點擊)

--throttle 300 //毫秒,操做延時

--ignore-crashes //忽略無響應,繼續執行

--ignore-timeouts //忽略Crash繼續執行

--monitor-native-crashes //用於指定是否監視並報告應用程序發生崩潰的本地代碼

--ignore-security-exceptions      //表示當應用程序遇到任何類型的權限錯誤時,Monkey將中止,例如,若是它嘗試啓動須要某些權限的活動。若是指定此選項,則Monkey將繼續向系統發送事件,直到計數完成

-v 日誌等級, 經過-v參數能夠指定打印信息的詳細級別,多一個-v多一個級別 

級別

表示

描述

0

-v

打印最基本的事件

1

-v-v

更全面的信息,如增長了那些Activity被選中

2

-v-v-v

日誌記錄最全面的信息 

 

50000 //事件數量

> monkey_1019.log //日誌保存本地SD卡

--kill-process-after-error   //當Monkey因爲一個錯誤而中止時,出錯的應用程序將繼續處於運行狀態。當設置了此選項時,將會通知系統中止發生錯誤的進程。注意,正常的(成功的)結束,並無中止啓動的進程,設備只是在結束事件以後,簡單地保持在最後的狀態

--monitor-native-crashes     //表示Android系統原生代碼中的監視和報告崩潰。若是設置了-kill-process-after-error,系統將中止

--wait-dbg               //表示中止執行中的Monkey,直到有調試器和它相鏈接

 

tips:

1) 若只跑指定的幾個包,能夠不設置白名單,直接執行指令(-p部分添加要執行的包):

adb shell

monkey -p com.ubtechinc.cruzr.music -p com.ubtechinc.cruzr.video -s 50 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --monitor-native-crashes -v -v -v 10000&>/mnt/sdcard/data/ monkey_1019.log

2)不指定應用,跑安卓系統

 adb shell

 monkey -s 68 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --monitor-native-crashes -v -v -v 50000 &>/sdcard/monkey/ monkey_1019.log

3)指定黑名單,不執行該應用

a. 建立黑名單文件blacklist.txt

b. push黑名單到Android系統:adb push d:/Monkey/whitelist.txt /mnt/sdcard/data/blacklist.txt

c. 執行的時候增長--pkg-whitelist-file /mnt/sdcard/data/ blacklist.txt

4、導出日誌及日誌分析

一、導出日誌到本地:

adb pull /mnt/sdcard/data/ monkey_1019.log E:\Cruzr\Monkey\log\ monkey_1019.log

二、日誌分析

1)無響應問題能夠在日誌中搜索 「ANR」,崩潰問題搜索 「CRASH」, 若是碰到這兩類問題,抓取日誌同時,須要提供traces.txt,具體存放目錄可詢問開發

2)內存泄露問題搜索"GC"(需進一步分析),異常問題搜索 「Exception」(若是出現空指針, NullPointerException,需重視) 

 

(Monkey日誌內容分析:
通常測試結果分析-搜索關鍵字:
1.程序無響應,ANR問題:在日誌中搜索「ANR」
2.崩潰問題:在日誌中搜索「CRASH」
3.其餘問題:在日誌中搜索」Exception」
4.ForceClosed 和程序異常退出問題:在日誌中搜索"Fatal" 
5.搜索「system error」)

5、如何中斷測試

一、登陸adb :adb shell

二、查看進程號:ps | grep monkey

三、kill掉w進程:kill <進程號>

 

 

 

操做說明:(單獨一個文件夾複製過來的,僅供參考)

Cruzr Monkey測試操做說明        monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 88 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 800 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 50000    一、將測試應用白名單push到Android系統,如:     adb push d:/monkey/whitelist.txt /mnt/sdcard/monkey/whitelist.txt 二、登陸adb     adb shell 三、調用Monkey     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 53 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 100000 &>/mnt/sdcard/monkey/b0f1ecac466e_0806-001.log     參數說明:         --pkg-whitelist-file /mnt/sdcard/data/whitelist.txt        //測試應用白名單         -s 50        //種子序列(不一樣的隨機操做系列),出問題須要用相同種子值進行復現;沒測出問題,下次須要從新修改種子值再跑         --pct-touch 70        //觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)         --pct-motion 20        //動做事件的百分比(動做事件由屏幕上某處的一個down事件、一系列的僞隨件機事和一個up事件組成)         --pct-motion 20        「基本」導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)         --throttle 500        //毫秒,操做延時         -ignore-crashes        //忽略無響應,繼續執行         --ignore-timeouts        //忽略Crash繼續執行         --monitor-native-crashes        用於指定是否監視並報告應用程序發生崩潰的本地代碼         -v        日誌等級         500000        //事件數量                  >>/mnt/sdcard/data/b0f1ecac46a3_0319-001.log        //標準輸出日誌保存本地SD卡         &>/mnt/sdcard/data/b0f1ecac46a3_0319-001.log        //標準輸出和標準錯誤輸出日誌保存到本地SD卡         -v -v -v 500000 |logcat -v time &>/mnt/sdcard/hly-0414-002.log    //輸出日誌帶時間戳          四、導出日誌     adb pull /mnt/sdcard/monkey/b0f1ec8c21b7_0327-001.log d:/Monkey/b0f1ec8c21b7_0327-001.log           單個應用跑Monkey     adb shell monkey -p com.ubtechinc.cruzr.timer -s 50 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --monitor-native-crashes -v -v -v 100000>d:/monkey/ test.log 多個應用跑Monkey         adb shell monkey -p com.ubtechinc.cruzr.timer -p com.ubtechinc.cruzr.launcher -s 50 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --monitor-native-crashes -v -v -v 100000>d:/monkey/test.log                待確認:     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 55 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 300 --monitor-native-crashes -v -v -v 50000 &>/mnt/sdcard/monkey/fss0324-006.log     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 55 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 300 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 30000 &>/mnt/sdcard/monkey/fss0326-003.log

相關文章
相關標籤/搜索