Android自動化壓力測試之Monkey Test (三)

Monkey 是什麼?android

Monkey是Google提供的一個用於穩定性與壓力測試的命令行工具。shell

Monkey路徑:app

路徑:/System/framework/monkey.jardom

啓動腳本路徑:/system/bin/monkey工具

1.首先咱們先打開安卓模擬器測試

2.打開本地cmd命令窗口spa

3.輸入命令查看 模擬器是否有鏈接上命令行

adb devices      ,出現以下圖所示說明已鏈接上日誌

4.而後就能夠輸入 adb shell 命令 進入monkey的路徑下去執行monkey test了orm

cd /system/framworke/        成功進入目錄,而後再來找下是否是有monkey的jar包

5. 模糊查詢含有monkey的命令:ls | grep monkey    ,能夠看到裏面是有monkey.jar包

6.咱們再看下啓動腳本     cd /system/bin/  成功進入目錄,而後輸入命令: ls | grep monkey 找下是否是有monkey 啓動腳本

上圖能夠看出是有monkey的啓動腳本的

由此上一節提到的環境變量的配置童鞋們也知道是作什麼用的了

配置adb的環境

monkey是由adb命令啓動的,因此要配置adb的環境

1.下載 Android SDK,解壓

2.將SDK目錄下的platform-tools 和 tools目錄配置到系統換環境變量中(將變量配置好以後才能安裝apk文件)

3.打開cmd窗口,輸入adb,有adb幫助信息則配置成功

 

安裝apk文件


首先 將須要進行測試的apk包拷貝到platform-tools 目錄下

而後執行安裝命令 adb install test.apk

要注意點的一點就是,執行安裝命令的時候,須要進入該目錄下,我這邊的目錄是

 

命令:E:

進入目錄下,cd E:\Android\android-sdk\platform-tools

 

而後執行安裝apk命令,出現下圖 Success 表示安裝成功,右側的就是模擬器安裝成功的app

命令格式:(輸入命令以後,模擬器上會運行對應的指定操做)

1.PC 啓動

>adb shell monkey [option] <count>          "[]"可選參數,可不填,"<>"裏面的參數必填,不填會報錯

2.shell端啓動

> adb shell 

>monkey [optinon] <count>

這兩種方式有什麼不一樣呢,第一種PC啓動,結果能夠保存在PC端;第二種手機端啓動,結果只能保存在手機。

固然 運行monkey時候的log想要保存出來也是能夠的

保存monkey運行的log

1.保存在PC中    adb shell monkey [option] <count> d:\monkey.txt       例如:adb shell monkey 100 > d:\monkey.txt       (運行100次,日誌保存在D盤,第2,第3同樣的意思,就不舉例了)

2.保存在手機中  monkey [option] <count> /mnt/sdcard/monkey.txt

3.標準流與錯誤流分開保存

monkey [option] <count> 1> /mnt/sdcard/monkey.txt 2> /mnt/sdcard/error.txt

 

monkey test的話 首先是須要了解各個參數是幹嗎的,各個參數的意義,再進行實踐操做

adb shell monkey -help  查看幫助命令

adb shell pm list packages 列出全部apk的包名

 

下面來進行實操演練

手機端運行

首先進入adb shell

 

運營對應的apk文件 adb shell monkey -p com.dabai.app.im 100    ( -p 後面接apk包名  而後接次數)

 

 上面紅色框中就是報錯的提示 運行19次後報錯,由於上圖沒有加日誌導出,下面是事件參數,這邊就將各類參數導出日誌的方法執行一遍

 若是在執行過程當中,運行次數過多,想要中止monkey的運行,那麼就再打開一個cmd命令窗口

先查看出monkey的進程

adb shell ps | find "monkey"

查詢出來的結果中 後面有跟着對應的apk包名

那麼kill這個進程便可

adb shell kill +進程編號     例如我這邊的是:adb shell kill 2189,執行後,就會結束運行了

Monkey事件參數

 對應日誌中的事件

對應命令(執行的效果的話 童鞋們最好本身執行而後對照着模擬器觀察就能夠知道效果了)

隨機種子 -S

adb shell monkey -p com.dabai.app.im -s 100 -v -v 100   (-S後面的100是隨機序列號也就是對應seed編號名稱,-V後面的100表明的是運行次數)下次若是還要查看該seed的執行過程,就在-s後面加100便可

 

固定延時 --throttle<毫秒>

adb shell monkey -p com.dabai.app.im --throttle 200 -v -v 100

隨機延時 --randomize-throttle

adb shell monkey -p com.dabai.app.im --throttle 200 --randomize-throttle -v -v 100      (這句話的意思是0-200毫秒的隨機延時)

touch    點擊事件 

adb shell monkey -p com.dabai.app.im --pct-touch 100--throttle 200 --randomize-throttle -v -v 100   (--pct是百分比的簡稱,touch後面跟的100 意思是 100%的操做都是執行這個touch)

motion    移動事件

adb shell monkey -p com.dabai.app.im --pct-motion 100--throttle 200 --randomize-throttle -v -v 100 

trackball 軌跡球事件

adb shell monkey -p com.dabai.app.im --pct-trackball 100--throttle 200 --randomize-throttle -v -v 100 

nav 導航時事件(上下左右鍵的意思)

adb shell monkey -p com.dabai.app.im --pct-nav 100--throttle 200 --randomize-throttle -v -v 100 

majornav 主要導航事件

adb shell monkey -p com.dabai.app.im --pct-majornav 100--throttle 200 --randomize-throttle -v -v 100 

 

下面的事件都是同理的執行,還有一個地方就是,全部的導航事件都是能夠連用的,只要將百分比設置的不一樣便可

相關文章
相關標籤/搜索