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


Monkey 是什么?

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

Monkey路徑:

路徑:/System/framework/monkey.jar

啟動腳本路徑:/system/bin/monkey

1.首先我們先打開安卓模擬器

2.打開本地cmd命令窗口

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

adb devices      ,出現如下圖所示說明已連接上

4.然后就可以輸入 adb shell 命令 進入monkey的路徑下去執行monkey test了

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 

 

下面的事件都是同理的執行,還有一個地方就是,所有的導航事件都是可以連用的,只要將百分比設置的不同即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM