(一)Monkey使用場景及常用命令


1.monkey應用場景

> monkey測試是Android平台自動化測試的一種手段,通過monkey程序模擬用戶觸摸屏幕、按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常

======================================

異常:

崩潰:XX應用停止運行

無響應:

閃退:程序運行時,毫無征兆返回到了桌面

======================================

>monkey 是命令行工具

>弱點:monkey雖然可以根據一個指定的命令腳本發送按鍵消息,但不支持條件判斷,也不支持讀取待測界面的值來執行驗證操作(即不支持斷言、執行的時候傻瓜式依次逐行執行)

>monkey用來做什么?

  可以用來做壓力測試也可以做自動化測試

>monkey什么時候用?

  產品穩定的時候,沒有特別多的bug,一般會用monkey去測應用的穩定性、健壯性

>monkey怎么用?

  Monkey 是Android SDK提供的一個命令行工具, 可以簡單,方便地運行在任何版本的Android模擬器和實體設備上。

  每台android手機里都有Monkey工具,但是我們是看不到的,因為,Monkey不是一個可視化的工具

  借助ADB才能與Monkey進行通訊

2.monkey命令格式

>開啟安卓模擬器/真機

>進入命令行界面

>查看設備連接情況 adb devices

>在命令行界面輸入monkey命令

如果monkey需要指定設備,基本語法如下:

adb  -s  [device]  shell  monkey  [options]

常用:

adb shell monkey -p  包名  -v  -v  -v -s 200 1000

3.monkey常見參數

3.1  -p

>用於約束限制,用此參數指定一個或多個包名。指定包名之后,monkey將只允許系統啟動指定的app。如果不指定包,monkey將允許系統啟動設備中所有的app。

>命令:

adb shell monkey -p 包名 1000

其中,1000是事件計數(即讓monkey模擬1000次隨機用戶事件)

包名:

方式一:adb shell dumpsys activity| find "mFocusedActivity"

方式二:adb shell dumpsys window | findstr mCurrentFocus 獲取當前應用的包名

3.2 -s

>用於指定偽隨機數生成器的seed值,如果seed值相同,則兩次monkey測試所產生的事件序列也是相同的

>命令:

monkey測試1:adb shell monkey -p 包名 -s  101   1000

monkey測試2:adb shell monkey -p 包名 -s  101   1000

>說明:

兩次測試的效果是相同的,因為模擬的用戶操作序列是一樣的。操作序列雖然是隨機生成的,但是只要指定了相同的seed值,就可以保證兩次測試產生的隨機操作序列是完全相同的,所以說這個操作序列是偽隨機的。

(操作序列:每次操作按照一定的先后順序所組成的一系列操作,即一個序列),比如:

同時,該圖代表3次事件次數

>目的:

通過seed值可以復現bug

3.3 -v

>用於指定反饋信息級別(就是日志的詳細程度),總共分為三個級別

-v  日志級別 level 0

說明:缺省值,僅提供啟動提示、測試完成和最終結果等少量信息

-v -v 日志級別 level 1

說明:提供較為詳細的日志,包括每個發送到Activity的事件信息

-v -v -v 日志級別 level 2

說明:最詳細的日志,包括了測試中選中/未選中的Activity信息

>命令:

adb shell monkey - p 包名 -s  180  -v -v -v 1000  

1000是事件計數(即讓monkey模擬1000次隨機用戶事件)

3.4 --throttle <毫秒>

>用於指定用戶操作(即事件)的時延,單位是毫秒

>命令:

adb shell monkey -p 包名  --throttle 3000  100

>說明:執行一百次monkey隨機事件,每次事件之間的延遲是3s

3.5 --randomize-throttle

在事件之間插入隨機延遲,隨機延遲范圍為0到throttle設置的時間,單位為毫秒

>命令:

adb shell monkey -p 包名 --throttle 5000 --randomize-throttle 100

>說明:執行一百次monkey隨機事件,每次事件的間隔在0-5000毫秒之間不固定

3.6 --pkg-whitelist-file  白名單,后面接txt文件

1)第一步把你設置的白名單的包名寫到一個txt文檔里面,記得路徑和文檔名字都是英文!如,D:\whitelist.txt

2)把這個文件推送到我們的安卓機中去,放到/data/local/tmp下面

>命令:

adb  push    D:\whitelist.txt     /data/local/tmp  

 adb  shell  monkey   --pkg-whitelist-file   /data/local/tmp/whitelist.txt  100

3)可以在上面adb 命令后重定向輸出查看monkey運行日志,可以用來輔助logcat日志定位問題

3.7 --pkg-blacklist-file  黑名單,后面接txt文件

>操作步驟參考白名單,效果與之相反

>命令:

 adb  shell  monkey   --pkg-blacklist-file   /data/local/tmp/blacklist.txt  100

3.8 百分比事件

>使用:

adb shell monkey  -p 包名  -s  210  -v -v -v  --pct-touch 100  400 //百分百為點擊事件

adb shell monkey -p 包名 -s 210 -v -v -v  --pct-touch 50  --pct-rotation 50  400   //一半點擊一半旋轉

>使monkey進程停止:

進入adb  shell 

ps 查看進程,

找到monkey進程:

殺掉進程:

kill  進程號 

 


免責聲明!

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



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