您好,登錄后才能下訂單哦!
這篇文章給大家介紹Monkey工具怎么用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
今天我來講一下最近上手的一款工具---------monkey。Api網站上是這么定義的:Monkey是運行在模擬器或者設備上的能夠生成偽隨機的用戶事件流(比如 點擊、觸摸或者手勢,還有許多系統級別的事件)的程序。你可以用Monkey用隨機可重復的方式對你正在開發的應用程序進行壓力測試。說白了就Monkey能夠進行模擬用戶或系統的響應。在開發的時候進行壓力測試。
Monkey是一個能運行在任何模擬器或者設備上的命令行工具,它向系統發送偽隨機的用戶事件流。實現對正在開發的應用程序的壓力測試。
Monkey包括很多的操作,但是一般分類以下四類:
a: 基本配置選項,比如設置事件的數量。
b: 操作的限制,比如限制只在這一個包中操作。
c: 事件類型和頻率。
d: debug選項。
當Monkey運行的時候,它會產生和發送事件到系統,同時會監聽系統在測試環境下如果出現以下三種情況會特殊處理:
1 如果你指定Monkey運行在一個或者多個特定的包中的時候,它將會嘗試到其他的包中,同時進行阻塞。
2 如果你正在測試的應用程序crashes了或者遇到不能捕獲的異常,Monkey就會停止而且報錯。
3 如果你的應用程序出現ANR,Monkey也會停止然后報錯。
根據你選的Verbosity級別的Log,可以看到Monkey運行的過程日志記錄。
可以在開發環境中用命令行或者腳本語言運行Monkey。由于Monkey運行在模擬器或者設備上,所以命令行必須有shell環境。可以在adb shell上運行命令。也可以進入Monkey的命令行操作。
基本語法如下:
$ adb shell monkey [options] <event-count>
如果沒有[options]的時候Monkey就以靜默模式運行(沒有verbose級別的日志),同時發送向所有在設備上的包發送事件(命令)。
$ adb shell monkey -p your.package.name -v 500
上面這個命令就是向應用發送500次偽隨機事件。
Api文檔中命令行詳解如下:
以上的api文檔中的一些命令參數可以通過--help 來查看參數以及使用方法;
比如
>adb shell monkey -p com.ydzy.ydzydemo -v -v -v 10 -script -ignore-crashes -hprof >output.txt
上面的命令的大概意思的 模擬偽隨機事件10次,忽略crashes,-hprof 的意思的會按照之前的事件序列生成分析報告,文件大小大概在5MB左右。這個應該和TraceView工具生成的文件一樣。 >output.txt
這個命令的意思是將db shell monkey -p com.ydzy.ydzydemo -v -v -v 10 -script -ignore-crashes -hprof 輸出到output.txt文件中。生成的output.txt可以再如下圖中位置找到:
因為如果模擬太多次的話會生成大量文件,所有我上面的偽隨機數設置了10,以下是output.txt文件的內容:
(藍色是日志------ 紅色代表我的注解)
:Monkey: seed=0 count=10 (seed 是上面第二部分命令行詳解的參數 這個代表偽隨機數值生成器,代表多次運行的隨機數值相同的話他將生成的事件序列也是相同的 count代表模擬測試偽事件的次數)
:AllowPackage: com.ydzy.ydzydemo
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:(偽事件分類(分別表示touch類型 、motion、 trackball、 syskeys、 nav、 majornav、 appswitch、 flip、 anyevent、)所占時間的比例)
// 0: 15.0%
// 1: 10.0%
// 2: 15.0%
// 3: 25.0%
// 4: 15.0%
// 5: 2.0%
// 6: 2.0%
// 7: 1.0%
// 8: 15.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.ydzy.ydzydemo/com.ydzy.musicbook.ui.HomeActivity;end(表示跳轉到HomeActivity)
// Allowing start of Intent { act=android.intent.action.MAIN (允許跳轉在包中)cat=[android.intent.category.LAUNCHER] cmp=com.ydzy.ydzydemo/com.ydzy.musicbook.ui.HomeActivity } in package com.ydzy.ydzydemo
Events injected: 10(事件注入)
:Dropped: keys=0 pointers=0 trackballs=0 flips=0(丟棄的事件記錄)
## Network stats: elapsed time=42ms (0ms mobile, 42ms wifi, 0ms not connected)(統計的花費的事件狀況 手機耗時42毫秒 wifi耗時0毫秒 而且網絡一直連接)
// Monkey finished(測試完成,如果有異常的話假如沒有忽略crashes的話會停止并且顯示異常)
如果crashes掉的話應該有 CRASH這種字段
關于Monkey工具怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。