Android - 自動化測試 Monkey

前言

最近在群里看到別人討論自動化測試,然后我就去研究自動化測試了,emmmmm 其實測試這種東西應(yīng)該是由測試去做的.但無奈公司并沒有測試員.叫我用我的右手去測是不可能的.程序員是不可能浪費自己的時間的,隱隱約約記得上學(xué)的時候老師講過一種最簡單最有效測試工具 - Monkey.還是ADB內(nèi)置的彻消。

What Monkey

顧名思義,中文意思 : 猴子 呵恢。模擬抽了風(fēng)的用戶胡亂的觸摸屏幕听皿、滑動Trackball潦匈、按鍵等操作宇攻。主要的目的是對指定App進(jìn)行壓力測試.,測試App一些隱藏深處的Bug 例如:NullPointerException 空指針是最簡單的一個異常 ,不過在Android中一個NullPointException會導(dǎo)致你的App閃退,這對用戶來說無疑就是質(zhì)疑程序員實力的證據(jù)。

Monkey 簡單使用

切換到ADB根目錄

win + R  -> cmd -> cd C:\Users\Administrator-master\AppData\Local\Android\Sdk\platform-tools 

進(jìn)adb.exe命令控制

adb shell

對指定包名應(yīng)用隨機發(fā)送1000個事件

 monkey -p cn.hjc.appdemo 1000

Monkey命令介紹

monkey -help
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pct-permission PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              [--permission-target-system]

-p 用于約束測試對象包名

對手機所有應(yīng)用進(jìn)行1000個事件測試

monkey 1000

對單個應(yīng)用進(jìn)行1000個事件測試

monkey -p cn.hjc.appdemo 1000

對多個應(yīng)用進(jìn)行共1000個事件測試

monkey -p cn.hjc.appdemo -p cn.hjc.appdemo2 1000

-v 用于指定日志信息級別

關(guān)于-v等級介紹

Level0

僅提供啟動提示皮获、測試完成和最終結(jié)果等少量信息

Level1

提供較為詳細(xì)的日志牲剃,包括每個發(fā)送到Activity的事件信息

Level2

最詳細(xì)的日志,包括了測試中選中/未選中的Activity信息

對約束包名進(jìn)行1000個事件測試,并打印Level0日志, -v -v 代表Level1日志信息

 monkey -p cn.hjc.appdemo –v 1000

-s 用于Bug復(fù)現(xiàn)

偽隨機數(shù)發(fā)生器的種子值清酥。如果重新運行具有相同種子值的猴子扶镀,它將生成相同的事件序列。
ps:使用同一seed數(shù)值,使測試事件序列一致焰轻。
出現(xiàn)異常停止控制臺執(zhí)行后最后一行
** System appears to have crashed at event 7550 of 10000 using seed 1540463526728
意思就是10000個事件執(zhí)行了7550 出現(xiàn)了crashed 復(fù)現(xiàn)種子1540463526728

 monkey -p cn.hjc.appdemo -s 1024 –v 1000

--throttle <milliseconds> 用于操作延時

用于指定用戶操作(即事件)間的時延臭觉,單位是毫秒
ps:注意[ --throttle ]前面是兩個橫杠,一開始我還以為是一個.milliseconds單位是毫秒,(個人覺得 300 - 500 是最適合的)

對單個應(yīng)用進(jìn)行共1000個事件測試,每個事件延時300毫秒

 monkey -p cn.hjc.appdemo --throttle 300  1000

--pc-anyevent <percent>用于指定操作百分比

用于指定每種類別事件的數(shù)目百分比(在Monkey事件序列中,該類事件數(shù)目占總事件數(shù)目的百分比)

--pct-anyevent 10

指定任意事件的百分比
ps:默認(rèn)情況下這個是默認(rèn)值,及不設(shè)置,也就是純隨機事件

monkey -p cn.hjc.appdemo --pct-anyevent 10 1000
--pct-touch 10

指定觸摸事件的百分比

monkey -p cn.hjc.appdemo --pct-touch 10 1000
--pct-motion 10

指定滑動事件的百分比

--pct-trackball 10

指定軌跡球事件的百分比

--pct-nav 10

指定導(dǎo)航事件中辱志,up蝠筑、down、left揩懒、right等事件的百分比

--pct-majornav 10

指定導(dǎo)航事件中什乙,back、menu等事件的百分比

--pct-syskeys 10

指定系統(tǒng)按鍵的百分比已球,包括HOME臣镣、Back、音量等

--pct-appswitch 10

指定Activity之間切換的比例

—ignore-crashes 忽略crashes繼續(xù)新的Monkey

正常情況來說,運行Monkey測試的時候,出現(xiàn)crashes的時候控制臺會停止執(zhí)行,并出現(xiàn)報錯信息和悦。那么有時候需要無人值守,一般都是程序員下班打開Monkey運行一個晚上第二天上班看Bug,就需要到這個命令了.
ps:忽略crashes此命令,-s <seed> 將不生效.
對手機指定應(yīng)用進(jìn)行1000個事件測試,忽略異常

monkey -p cn.hjc.appdemo --ignore-crashes 1000

>D:\monkeyLog.txt 將日志文件重定向保存

錯誤的方式
執(zhí)行無誤,不輸出日志

(錯誤) monkey -p cn.hjc.appdemo -v -v -v 1000 D:\monkeyLog.txt

執(zhí)行錯誤 /system/bin/sh: can't create d:monkeyLog.txt: Read-only file system

(錯誤) monkey -p cn.hjc.appdemo -v -v -v 1000 >D:\monkeyLog.txt

以上的兩行代碼都是錯誤的,經(jīng)過我努力.發(fā)現(xiàn)在cmd進(jìn)入shell 之后并沒有權(quán)限進(jìn)行讀寫文件.so.解決方案是什么呢..
以下這種方法就能正常的輸出日志文件,但是運行過程中沒有在控制臺輸出日志,差評

切換到adb 目錄上 cd C:\Users\Administrator-master\AppData\Local\Android\Sdk\platform-tools
在目錄上執(zhí)行 .\adb shell monkey -p cn.hjc.appdemo -v -v-v 1000 >D:\monkeyLog.txt 

End

相信以上的介紹已經(jīng)可以杜絕絕大部分Crashes,有需要其他命令介紹留言杈女。后續(xù)補上.....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末融柬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子举哟,更是在濱河造成了極大的恐慌亦鳞,老刑警劉巖馍忽,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異燕差,居然都是意外死亡遭笋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門徒探,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓦呼,“玉大人,你說我怎么就攤上這事测暗⊙氪” “怎么了磨澡?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長质和。 經(jīng)常有香客問我稳摄,道長,這世上最難降的妖魔是什么饲宿? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任厦酬,我火速辦了婚禮,結(jié)果婚禮上瘫想,老公的妹妹穿的比我還像新娘仗阅。我一直安慰自己,他們只是感情好殿托,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布霹菊。 她就那樣靜靜地躺著,像睡著了一般支竹。 火紅的嫁衣襯著肌膚如雪旋廷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天礼搁,我揣著相機與錄音饶碘,去河邊找鬼。 笑死馒吴,一個胖子當(dāng)著我的面吹牛扎运,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饮戳,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼豪治,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扯罐?” 一聲冷哼從身側(cè)響起负拟,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歹河,沒想到半個月后掩浙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡秸歧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年厨姚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片键菱。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡谬墙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芭梯,我是刑警寧澤险耀,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站玖喘,受9級特大地震影響甩牺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜累奈,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一贬派、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澎媒,春花似錦搞乏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至储玫,卻和暖如春侍筛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒穷。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工匣椰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人端礼。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓禽笑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛤奥。 傳聞我的和親對象是個殘疾皇子佳镜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容