android自動(dòng)化測(cè)試(1)Monkey工具

一污尉、什么是Monkey示弓?

Monkey是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中行冰。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入溺蕉、觸摸屏輸入、手勢(shì)輸入等)悼做,實(shí)現(xiàn)對(duì)正在開發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試疯特。Monkey測(cè)試是一種為了測(cè)試軟件的穩(wěn)定性、健壯性的快速有效的方法肛走。

二漓雅、為什么要用Monkey?

用Monkey來做壓力測(cè)試比人為來做效率高很多,對(duì)提高程序的健壯性有很大幫助。

三邻吞、Monkey的局限性

1组题、 測(cè)試的對(duì)象僅為應(yīng)用程序包,有一定的局限性抱冷。

2崔列、 Monky測(cè)試使用的事件流數(shù)據(jù)流是隨機(jī)的,不能進(jìn)行自定義旺遮。

3赵讯、 可對(duì)MonkeyTest的對(duì)象,事件數(shù)量耿眉,類型边翼,頻率等進(jìn)行設(shè)置。

四跷敬、Monkey的用法

基本語法如下:

$ adb shell monkey [options]

如果不指定options讯私,Monkey將以無反饋模式啟動(dòng)热押,并把事件任意發(fā)送到安裝在目標(biāo)環(huán)境中的全部包西傀。下面是一個(gè)更為典型的命令行示例,它啟動(dòng)指定的應(yīng)用程序桶癣,并向其發(fā)送500個(gè)偽隨機(jī)事件:

$ adb shell monkey -p your.package.name -v 500

其中-p表示對(duì)象包 –v 表示反饋信息級(jí)別

五拥褂、Monkey常用命令

1、九個(gè)事件

--pct-touch 0

調(diào)整觸摸事件的百分比(觸摸事件是一個(gè)down-up事件牙寞,它發(fā)生在屏幕上的某單一位置)(——點(diǎn)擊事件饺鹃,涉及down、up)

--pct-motion 1

調(diào)整動(dòng)作事件的百分比(動(dòng)作事件由屏幕上某處的一個(gè)down事件间雀、一系列的偽隨機(jī)事件和一個(gè)up事件組成) (——注:move事件悔详,涉及down、up惹挟、move三個(gè)事件)

--pct-trackball 2

調(diào)整軌跡事件的百分比(軌跡事件由一個(gè)或幾個(gè)隨機(jī)的移動(dòng)組成茄螃,有時(shí)還伴隨有點(diǎn)擊)--(軌跡球)

--pct-nav 3

調(diào)整“基本”導(dǎo)航事件的百分比(導(dǎo)航事件由來自方向輸入設(shè)備的up/down/left/right組成)

--pct-majornav 4

調(diào)整“主要”導(dǎo)航事件的百分比(這些導(dǎo)航事件通常引發(fā)圖形界面中的動(dòng)作,如:5-way鍵盤的中間按鍵连锯、回退按鍵归苍、菜單按鍵)

--pct-syskeys 5

調(diào)整“系統(tǒng)”按鍵事件的百分比(這些按鍵通常被保留,由系統(tǒng)使用运怖,如Home拼弃、Back、Start Call摇展、End Call及音量控制鍵)

--pct-appswitch 6

調(diào)整啟動(dòng)Activity的百分比吻氧。在隨機(jī)間隔里,Monkey將執(zhí)行一個(gè)startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法医男。(從一個(gè)Activity跳轉(zhuǎn)到另一個(gè)Activity)

--pct-flip 7

調(diào)整“鍵盤翻轉(zhuǎn)”事件的百分比砸狞。

--pct-anyevent 8

調(diào)整其它類型事件的百分比。它包羅了所有其它類型的事件镀梭,如:按鍵刀森、其它不常用的設(shè)備按鈕、等等报账。

紅色的數(shù)字對(duì)應(yīng)下面百分比對(duì)應(yīng)的數(shù)字研底。比如下圖中0:15.0%,表示分配--pct-touch事件15%透罢。測(cè)試100次分配15次測(cè)試down-up榜晦。

2、百分比控制

如果在monkey參數(shù)中不指定上述參數(shù)羽圃,這些動(dòng)作都是隨機(jī)分配的乾胶,9個(gè)動(dòng)作其每個(gè)動(dòng)作分配的百分比之和為100%,我們可以通過添加命令選項(xiàng)來控制每個(gè)事件的百分比朽寞,進(jìn)而可以將操作限制在一定的范圍內(nèi)识窿。

我們先來看一下不加動(dòng)作百分比控制,系統(tǒng)默認(rèn)分配事件百分比的情況

命令:adb shell monkey -v -p your.www.com 500

結(jié)果:

再看一下指定事件脑融,控制事件百分比之后的情況

命令:adb shell monkey -v -p your.www.com --pct-anyevent 100 500

結(jié)果:

說明:--pct-anyevent 100表明pct-anyevent所代表的事件的百分比為100%喻频。

六、約束限制及確定對(duì)應(yīng)包名

1、約束限制

-p

1個(gè)-p選項(xiàng)只能用于一個(gè)包。指定多個(gè)包米碰,需要使用多個(gè)-p選項(xiàng)

2、確定測(cè)試包名

利用monkey測(cè)試姻蚓,通過-p參數(shù)確定應(yīng)用程序在Emulator中所對(duì)應(yīng)的包名。步驟如下:

a匣沼、在Eclipse中打開欲測(cè)試的項(xiàng)目狰挡,并在模擬器中執(zhí)行。此時(shí)肛著,他的APK應(yīng)該加載到了Emulator(譯:仿真器圆兵、模擬器)上(

也可以通過命令模式打開模擬器、安裝枢贿、刪除apk

啟動(dòng)模擬器:emulator -avd testtest為模擬器名稱

安裝:adb install c:/xxx.apk

刪除:adb uninstall apk的包名

b殉农、在命令行輸入命令:adb shell

c、應(yīng)用程序包都在data目錄中的data目錄下局荚,我們輸入命令:cd data/data進(jìn)入目標(biāo)data文件夾超凳,在執(zhí)行命令:ls愈污,可找到剛才加載項(xiàng)目的應(yīng)用程序包。如下圖所示:

找到對(duì)應(yīng)的包名后轮傍,就可以通過monkey命令來進(jìn)行測(cè)試了暂雹。例如:adb shell monkey -v -p your.www.com 500

隨便說一下,最后的500创夜,表示測(cè)試觸發(fā)500個(gè)事件(500個(gè)事件要按比例分?jǐn)偟?個(gè)事件當(dāng)中杭跪,如何指定不同的事件比例上面已經(jīng)說過了)。

如果在事件之間插入延時(shí)驰吓,使用參數(shù):--throttle 5000 這里的5000為毫秒單位涧尿。通過這個(gè)選項(xiàng),可以降低monkey的執(zhí)行速度檬贰;如果不指定該選項(xiàng)姑廉,Monkey將不會(huì)被延遲,事件將盡可能快的被產(chǎn)生翁涤。

-s 偽隨機(jī)數(shù)生成器的seed值桥言。如果用相同的seed值再次運(yùn)行monkey,它將生成相同的事件序列葵礼,對(duì)9個(gè)事件分配相同的百分比号阿。

-v 命令行的每一個(gè)-v將增加反饋信息的級(jí)別。

至于其它的一些參數(shù)章咧,就百度一下吧倦西,暫時(shí)先寫到這里能真。

七赁严、在monkey測(cè)試中常用的命令組合

1、monkey -p com.yourpackage -v 500 簡(jiǎn)單的輸出測(cè)試的信息粉铐。

2疼约、monkey -p com.yourpackage -v -v -v 500? 以深度為三級(jí)輸出測(cè)試信息。

3蝙泼、monkey -p com.yourpackage --port 端口號(hào) -v 為測(cè)試分配一個(gè)專用的端口號(hào)程剥,不過這個(gè)命令只能輸出跳轉(zhuǎn)的信息及有錯(cuò)誤時(shí)輸出信息。

4汤踏、monkey -p com.yourpackage -s 數(shù)字 -v 500 為隨機(jī)數(shù)的事件序列定一個(gè)值织鲸,若出現(xiàn)問題下次可以重復(fù)同樣的系列進(jìn)行排錯(cuò)。

5溪胶、monkey -p com.yourpackage -v --throttle 3000 500 為每一次執(zhí)行一次有效的事件后休眠3000毫秒搂擦。

八、試?yán)?/p>

在android studio terminal中輸入abd ps 列出手機(jī)中的程序列表(安裝時(shí)包名可能會(huì)發(fā)生變化)

用命令$ adb shell monkey -p your.package.name -v 500進(jìn)行測(cè)試

九哗脖、關(guān)于Monkey測(cè)試的停止條件

Monkey Test執(zhí)行過程中在下列三種情況下會(huì)自動(dòng)停止:

1瀑踢、如果限定了Monkey運(yùn)行在一個(gè)或幾個(gè)特定的包上扳还,那么它會(huì)監(jiān)測(cè)試圖轉(zhuǎn)到其它包的操作,并對(duì)其進(jìn)行阻止橱夭。

2氨距、如果應(yīng)用程序崩潰或接收到任何失控異常,Monkey將停止并報(bào)錯(cuò)棘劣。

3俏让、如果應(yīng)用程序產(chǎn)生了應(yīng)用程序不響應(yīng)(application not responding)的錯(cuò)誤,Monkey將會(huì)停止并報(bào)錯(cuò)茬暇。

通過多次并且不同設(shè)定下的Monkey測(cè)試才算它是一個(gè)穩(wěn)定性足夠的程序舆驶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市而钞,隨后出現(xiàn)的幾起案子沙廉,更是在濱河造成了極大的恐慌,老刑警劉巖臼节,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撬陵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡网缝,警方通過查閱死者的電腦和手機(jī)巨税,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粉臊,“玉大人草添,你說我怎么就攤上這事《笾伲” “怎么了远寸?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屠凶。 經(jīng)常有香客問我驰后,道長,這世上最難降的妖魔是什么矗愧? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任灶芝,我火速辦了婚禮,結(jié)果婚禮上唉韭,老公的妹妹穿的比我還像新娘夜涕。我一直安慰自己,他們只是感情好属愤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布女器。 她就那樣靜靜地躺著,像睡著了一般春塌。 火紅的嫁衣襯著肌膚如雪晓避。 梳的紋絲不亂的頭發(fā)上簇捍,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音俏拱,去河邊找鬼暑塑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锅必,可吹牛的內(nèi)容都是我干的事格。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼搞隐,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼驹愚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劣纲,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤逢捺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后癞季,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劫瞳,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年绷柒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了志于。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡废睦,死狀恐怖伺绽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗜湃,我是刑警寧澤奈应,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站净蚤,受9級(jí)特大地震影響钥组,放射性物質(zhì)發(fā)生泄漏输硝。R本人自食惡果不足惜今瀑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望点把。 院中可真熱鬧橘荠,春花似錦、人聲如沸郎逃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褒翰。三九已至贮懈,卻和暖如春匀泊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朵你。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工各聘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抡医。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓躲因,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忌傻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子大脉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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