android穩(wěn)定性測試

簡介

Monkey是Android SDK提供的一個命令行工具蒋伦,可以簡單方便的發(fā)送偽隨機的用戶事件流弓摘,對Android APP做壓力(穩(wěn)定性)測試。主要是為了測試app是否存在無響應和崩潰的情況痕届。

monkey命令

adb shell monkey -p com.xiwang.zaixian -s 12345 -v -v -v --throttle 300 --pct-touch 60 --pct-motion 38 --pct -rotation 1--pct -pinchzoom 1 --bugreport 100000

以上參數說明:

基礎參數:-v 韧献、-s 、-p 研叫、--throttle等

調試選項:--ignore-crashes等

事件類型:--pct-touch等

(一)基礎參數

1锤窑、最簡單的monkey命令(adb shell monkey 100)

表示:在設備上,針對整個系統(tǒng)發(fā)送100個偽隨機事件嚷炉。

2渊啰、-v參數

用于指定反饋信息級別(信息級別就是日志的詳細程度)總共分為3級,默認為-v(對應:level0)

-v:只提供啟動提示渤昌、測試完成提示和最終結果等少量信息虽抄。

-v -v:較為詳細的日志,包括每個發(fā)送到activity的時間信息独柑。

-v -v -v:最詳細的日志迈窟,包括測試中選中/未選中的activity信息。

注意:在monkey測試完成時忌栅,最后一定會有一個:monkey finished標識车酣。

3、-p參數

在我們測試時索绪,是針對具體的app進行測試的湖员,所以在使用monkey測試時,我們需要提供具體的app包名給monkey瑞驱,此時就需要用到參數-p娘摔。在-p后跟隨app包名。

在測試時唤反,可以不指定包名凳寺,此時monkey會在測試設備上隨機啟動app進行操作鸭津;如果只需要測試一個app,使用一個-p即可肠缨;如果有多個app同時測試逆趋,可以直接使用-p 包名1 -p 包名2指定具體要測試的app。

4晒奕、-s參數

種子值(seed)闻书,因為monkey是發(fā)送的是偽隨機的事件流,但是如果兩次seed值相同脑慧,那兩次monkey測試所產生的事件序列也相同魄眉。(所以一般在測試時要記錄seed值,以防出現無響應和crash漾橙,不容易驗證杆融。)-s 12345偽隨機事件12345(12345是隨便起的名字,也可以叫456霜运,命名的好處是:如果發(fā)現了崩潰脾歇,開發(fā)解決之后,再以這個seed進行跑淘捡,步驟是和之前一樣的)

注意:-s需要跟在包名后藕各,次數前

5、--throttle參數

設置執(zhí)行操作的延遲時間(毫秒)--是指兩個事件之間的間隔焦除,如果沒有指定此參數激况,會盡可能快的生成和發(fā)送事件。注:實際用戶操作的最快300毫秒左右一個動作事件

(二)調試選項

1膘魄、--ignore-crashes

用于指定當應用程序崩潰時乌逐,Monkey是否停止運行。如果使用此參數创葡,即使應用程序崩潰浙踢,monkey依然會發(fā)送事件,直到事件計數完成灿渴。

2洛波、---ignore-timeouts

用于指定當應用程序發(fā)生ANR(Application No Responding)錯誤時,Monkey是否停止運行骚露。如果使用此參數蹬挤,即使應用程序發(fā)生ANR錯誤,Monkey依然會發(fā)送事件棘幸,直到事件計數完成焰扳。

3、--ignore-security-exceptionss

用于指定當應用程序發(fā)生許可錯誤時(如證書許可,網絡許可等)蓝翰,Monkey是否停止運行光绕。如果使用此參數,即使應用程序發(fā)生許可錯誤畜份,Monkey依然會發(fā)送事件,直到事件計數完成欣尼。

4爆雹、--kill-process-after-error

用于指定當應用程序發(fā)生錯誤時,是否停止其運行愕鼓。如果指定此參數钙态,當應用程序發(fā)生錯誤時,應用程序停止運行并保持在當前狀態(tài)(注意:應用程序僅是靜止在發(fā)生錯誤時的狀態(tài)菇晃,系統(tǒng)并不會結束該應用程序的進程)册倒。

5、--monitor-native-crashes

用于指定是否監(jiān)視并報告應用程序發(fā)生崩潰的本地代碼

6磺送、--hprof

該選項設置后驻子,將會在monkey事件序列前后立刻生成report,大小為大于5MB估灿,存儲在/data/misc

(三)事件類型

monkey在發(fā)送偽隨機事件時崇呵,是有不同的類型的。默認隨機分配比例馅袁,也可以指定其百分比域慷。如果不設置會是--pct-anyevent為100%,也就是純隨機事件汗销;如果配置了其他參數犹褒,但是不夠100%,余下的百分比部分也是--pct-anyevent事件弛针。

具體事件類型分別為:

1:觸摸事件--pct-touch

調整touch觸屏事件的百分比叠骑,觸碰事件就是指在屏幕上的一個單獨位置的一次點擊/抬起的事件。

2:滑屏事件--pct-motion(手勢事件)

(手勢事件是由一個在屏幕某處的按下事件钦奋、一系列的偽隨機移動座云、一個抬起事件組成)即一個滑動操作,但是是直線的付材,不能拐彎)

3:軌跡球--pct-trackball

(軌跡球事件包括一個或多個隨機移動朦拖,有時還伴有點擊。軌跡球現在智能手機上已經沒有了厌衔,就是類似手柄的方向鍵一樣)

4:旋轉(--pct-rotation)

旋轉屏幕

5:二指縮放事件(--pct-pinchzoom)

二指縮放事件是指在屏幕上的兩處同時按下璧帝,并同時移動,最后同時抬起的操作富寿,即智能機上的放大縮小手勢操作睬隶。

6:導航--pct-nav

(導航事件包括上下左右锣夹,如方向輸入設備的輸入)老手機的上下左右鍵,智能機上沒有)

7:主導航--pct-majornav

調整主要導航事件的百分比(如中間鍵苏潜、取消银萍、確定或菜單引發(fā)的圖形接口的動作)

8:系統(tǒng)按鍵--pct-syskeys

調整系統(tǒng)按鍵事件,如:home/back/startcall/endcall以及音量控制鍵等

9:app切換--pct-appswitch

調整啟動activity的百分比恤左,在隨機間隔中贴唇,執(zhí)行一個startActivity()方法調用,作為一種最大化的覆蓋安裝包的所有的activity的方法

10:鍵盤翻轉(--pct-flip)

11:隨機--pct-anyevent

調整其他類型的事件的百分比飞袋,比如按鍵或其他不太常用到的一些事件的百分比

12:bugreport {次數} 事件的次數

還有其他參數設置:需要可以搜索

monkey測試步驟+注意事項

  1. 連接WiFi戳气,不連接代理,保證使用真實的線上返回
  2. 去掉SIM卡巧鸭,以免斷開WiFi的時候瓶您,使用過多流量
  3. 打開cmd,輸入以上命令纲仍,保持cmd窗口不關閉呀袱,如遇到崩潰,cmd上的輸出就會停止巷折,把崩潰保存下來提交給開發(fā),本地如果有崩潰日志保存压鉴,保存出現崩潰的界面,提交給開發(fā)
  4. 有的手機在跑monkey的時候锻拘,中間會和PC斷開連接油吭,重啟手機或者使用ps命令找到monkey的進程號之后,kill掉該進程號,則能停止monkey
  5. 關閉鎖屏及屏幕保護
  6. 需要開啟手機開發(fā)者選項中的允許模擬位置
  7. 調整手機時區(qū)是中國時區(qū)(有的手機可能跑monkey或者人為使時區(qū)調整成非中國的署拟,因為有的地方開發(fā)代碼沒有做異常處理)
  8. monkey避免wifi關閉婉宰,使用禁用系統(tǒng)通知欄,但是需要是root手機才行推穷,參考鏈接: http://www.cnblogs.com/bravesnail/p/4819659.html
  9. 前提:需要先手機先root心包,獲取到root權限,此方法可以隱藏狀態(tài)欄

全屏狀態(tài) adb shell settings put global policy_control immersive.full=*

恢復:adb shell settings put global policy_control null

  1. 至于音量鍵可以在執(zhí)行adb命令時候--pct-syskeys 0屏蔽掉

例如 adb shell monkey -p XXXX --pct-syskeys 0 1000

一些說明

  1. 想要monkey運行24小時馒铃,每100毫秒發(fā)送一個事件蟹腾。246060*1000/100=864000(次)

adb shell monkey -p *** -v -v -v --ignore-crashes --ignore-timeoutss --throttle 100 864000 >D:\monkey.log

表示:此次monkey將會運行24小時

存在的問題

  1. monkey無法指定頁面,經常會點到外部的 App 無法回歸原測試 App区宇;或者點擊到注銷和退出娃殖,造成無法繼續(xù)后面的測試;

  2. 有人Demons(守護程序)是自主研發(fā)的一套獨立的手機應用監(jiān)聽的守護程序。主要作用是控制對指定頁面進行Monkey測試议谷。炉爆,待調研https://blog.csdn.net/liyu520131414/article/details/69357777

  3. fastbot工具可指定activity白名單進行測試(待具體調研)

參考文檔

Maxim 也是一款自動遍歷工具,由國內的 zhangzhao 同學開發(fā),官方給出的定義是:

An efficient Android Monkey Tester, available for emulators and real devices 基于遍歷規(guī)則的高性能 Android Monkey芬首,適用于真機/模擬器的 APP UI 壓力測試赴捞。

我們來看看這款工具的優(yōu)缺點:

優(yōu)點:

  • 基于Monkey二次開發(fā),運行速度非秤羯裕快
  • 提供了多種遍歷算法以提高覆蓋度
  • 提供了定制化功能赦政,可以實現流程控制

缺點:

  • 因為是基于 Monkey,所以不具備跨平臺性艺晴,只能測試 Android昼钻,不能測試 iOS,Web 等封寞;

這是一款很優(yōu)秀的工具,可在一定程度上進行定制仅财,如果只測試 Android 系統(tǒng)的話狈究,可以考慮選用 Maxim 做穩(wěn)定性測試。

https://github.com/zhangzhao4444/Maxim

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末盏求,一起剝皮案震驚了整個濱河市抖锥,隨后出現的幾起案子,更是在濱河造成了極大的恐慌碎罚,老刑警劉巖磅废,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異荆烈,居然都是意外死亡拯勉,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門憔购,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宫峦,“玉大人,你說我怎么就攤上這事玫鸟〉急粒” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵屎飘,是天一觀的道長妥曲。 經常有香客問我,道長钦购,這世上最難降的妖魔是什么檐盟? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮肮雨,結果婚禮上遵堵,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好陌宿,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布锡足。 她就那樣靜靜地躺著,像睡著了一般壳坪。 火紅的嫁衣襯著肌膚如雪舶得。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天爽蝴,我揣著相機與錄音沐批,去河邊找鬼。 笑死蝎亚,一個胖子當著我的面吹牛九孩,可吹牛的內容都是我干的。 我是一名探鬼主播发框,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼躺彬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梅惯?” 一聲冷哼從身側響起宪拥,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铣减,沒想到半個月后她君,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡葫哗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年缔刹,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魄梯。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡桨螺,死狀恐怖,靈堂內的尸體忽然破棺而出酿秸,到底是詐尸還是另有隱情灭翔,我是刑警寧澤辣苏,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布肝箱,位于F島的核電站,受9級特大地震影響稀蟋,放射性物質發(fā)生泄漏煌张。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一退客、第九天 我趴在偏房一處隱蔽的房頂上張望骏融。 院中可真熱鬧链嘀,春花似錦、人聲如沸档玻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽误趴。三九已至霹琼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凉当,已是汗流浹背枣申。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留看杭,地道東北人忠藤。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像楼雹,于是被迫代替她去往敵國和親熄驼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內容