Android App Monkey 測試

  1. Monkey是Android SDK提供的一個命令行工具,可以簡單方便的發(fā)送偽隨機(jī)的用戶事件流,對Android APP做壓力(穩(wěn)定性)測試。主要是為了測試app是否存在exception,error,crash,nar等情況。目前在某些Android應(yīng)用平臺,新版app發(fā)布時,平臺會執(zhí)行monkey,如果有crash等相關(guān)問題,會被打回。

安裝sdk后,可在命令行通過 adb shell monkey 查看可用命令

2.monkey常用參數(shù)說明:

<colgroup><col><col></colgroup>
| 基本參數(shù) | 說明 |
| -p <allowed-package-name> | 指定一個或多個包 |
| -s <seed> | 指定一個隨機(jī)數(shù)生成器的seed值 |
| --throttle <milliseconds> | 指定事件之間的固定延遲(ms) |
| -v | 指定反饋信息級別(信息級別就是日志的詳細(xì)程度) |
| -c <main-category> | 指定一個或多個類別名 |
| -f <scriptfile> | 運行指定的monkey腳本 |

<colgroup><col><col></colgroup>
| 事件參數(shù) | 說明 |
| --pct-touch <percent> | 指定觸摸事件百分比 |
| --pct-motion <percent> | 指定動作事件百分比 |
| --pct-trackball <percent> | 指定軌跡事件百分比 |
| --pct-syskeys <percent> | 指定系統(tǒng)按鍵事件百分比 |
| --pct-nav <percent> | 指定基本導(dǎo)航事件百分比 |
| --pct-majornav <percent> | 指定主要導(dǎo)航事件百分比 |
| --pct-appswitch <percent> | 指定應(yīng)用啟動事件百分比 |
| --pct-flip <percent> | 指定flip(彈)事件的百分比 |
| --pct-anyevent <percent> | 指定其他類型事件百分比 |
| --pct-pinchzoom <percent> | 指定縮放(捏)事件百分比 |
| --pct-permission <percent> | 指定 |

<colgroup><col><col></colgroup>
| 調(diào)試參數(shù) | 說明 |
| --ignore-crashes | 忽略因崩潰或異常引起的停止運行 |
| --ignore-timeouts | 忽略應(yīng)用發(fā)生超時錯誤(ANR) |
| --ignore-security-exceptions | 忽略應(yīng)用發(fā)生任何權(quán)限錯誤 |
| --monitor-native-crashes | 監(jiān)視并報告monkey運行時native code的崩潰事件 |
| --ignore-native-crashes | 忽略因native code的崩潰事件 |
| --kill-process-after-error | 在應(yīng)用出錯后通知系統(tǒng)殺死發(fā)生錯誤的進(jìn)程 |
| --hprof | 在事件序列前后立即生成profilfing report |
| --dbg-no-events | 監(jiān)視應(yīng)用程序所調(diào)用的包之間的轉(zhuǎn)換 |
| --wait-dbg | 暫停執(zhí)行中的monkey,直到有調(diào)試器與它連接 |

3.使用真機(jī)環(huán)境針對皮皮Android客戶端進(jìn)行monkey測試

A.開啟手機(jī)調(diào)試模式,通過USB連接電腦,查看是否連接成,可以使用adb devices命令

B.關(guān)閉手機(jī)下拉通知欄,鎖定手機(jī)界面(視機(jī)型而定,操作方式不一樣),避免測試工程中切出app,影響測試結(jié)果。

C.執(zhí)行monkey測試,使用腳本命名如下,參數(shù)請參照上面參數(shù)說明理解。

adb shell monkey -p com.chudiangameplay.android -s 10086 --pct-touch 70 --pct-motion 30 --ignore-crashes --ignore-timeouts --monitor-native-crashes --throttle 200 -v -v -v 50000 >D:\monkeylog\20200525.log

4.日志分析

日志分析可手動在日志中搜索crashes 、crashes 、error等內(nèi)容,查看對應(yīng)區(qū)域日志。

日志量較大,可使用如下提供的bat腳本,分析對應(yīng)日志文件。

@ECHO OFF

ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::

ECHO.::             分析Monkey日志                  ::

ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::

REM 方法一:手動設(shè)置Monkey日志路徑

SET monkeyLogFile=D:\monkeylog\20200525.log



REM 方法二:直接將Monkey日志拖到此bat文件上

IF NOT "%1"=="" SET monkeyLogFile=%1



ECHO.[ INFO ] Monkey日志: %monkeyLogFile%

ECHO.[ INFO ] 開始分析

SET blnException=0

ECHO.

ECHO.

::ANR日志

FOR /F "delims=" %%a IN ('FINDSTR /C:"ANR" %monkeyLogFile%') DO ( 

    SET strANR=%%a

)



::崩潰日志

FOR /F "delims=" %%a IN ('FINDSTR /C:"CRASH" %monkeyLogFile%') DO ( 

    SET strCRASH=%%a

)

    

::異常日志

FOR /F "delims=" %%a IN ('FINDSTR /C:"Exception" %monkeyLogFile%') DO ( 

    SET strException=%%a

)



::正常

FOR /F "delims=" %%a IN ('FINDSTR /C:"Monkey finished" %monkeyLogFile%') DO ( 

    SET strFinished=%%a

)



IF NOT "%strANR%" == "" (

    ECHO.[ INFO ] 分析Monkey日志存在: ANR

    ECHO.[ INFO ] ------------------------------------

    ECHO.         "%strANR%"

    SET /a blnException+=1

    ECHO.

)



IF NOT "%strCRASH%" == "" (

    ECHO.[ INFO ] 分析Monkey日志存在: CRASH

    ECHO.[ INFO ] ------------------------------------

    ECHO.         "%strCRASH%"

    SET /a blnException+=1

    ECHO.

)



IF NOT "%strException%" == "" (

    ECHO.[ INFO ] 分析Monkey日志存在: 異常

    ECHO.[ INFO ] ------------------------------------

    ECHO.         "%strException%"

    SET /a blnException+=1

)



IF NOT "%strFinished%" == "" (

    ECHO.[ INFO ] 分析Monkey日志存在: 執(zhí)行成功標(biāo)記

    ECHO.[ INFO ] ------------------------------------

    ECHO.         "%strFinished%"

    ECHO.

) ELSE (

    IF %blnException% EQU 0 ECHO.[ INFO ] 分析Monkey日志結(jié)果: Monkey執(zhí)行異常中斷,請重新執(zhí)行Monkey腳本!

    ECHO.

)



REM 如果blnException不為0,說明存在異常,改變字體為淡紫色

IF %blnException% NEQ 0 ( 

    Color 0D

    ECHO.[ INFO ] 分析Monkey日志結(jié)果:存在異常日志,請手工再仔細(xì)檢查!

    ECHO.

) ELSE (

    ECHO.[ INFO ] 分析Monkey日志結(jié)果:正常

    ECHO.

)

ECHO.

ECHO.[ EXIT ] 按任意鍵關(guān)閉窗口...

PAUSE>nul
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容