最全的monkey测试过程及分析

一、首先第一步安装Android SDK,完成后。编写测试脚本,我的脚本已经编写好。具体大家可以从网上Google针对自己的情况再进行详细的编改。

@ECHO OFF
 
ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::
 
ECHO.::             分析Monkey日志                  ::
 
ECHO.::             版本:V1.0.0                   ::
 
ECHO.::             部门:新通路                   ::

ECHO.::             脚本编写:宋小宝                ::

ECHO.::             异常处理:王宝强                 ::
 
ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::
 
REM 设置Monkey日志路径 
SET monkeyLogFile=%cd%\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%.txt
 
REM 方法二:直接将Monkey日志拖到此bat文件上
IF NOT "%1"=="" (

	SET monkeyLogFile=%1

) ELSE (
	ECHO.[ INFO ] Monkey执行中...
	REM Monkey执行命令
	adb shell monkey -p com.jd.b2r --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 30000 > "%monkeyLogFile%"

)
 
 
ECHO.[ INFO ] Monkey日志: %monkeyLogFile%
 
ECHO.[ INFO ] 开始分析
 
SET blnException=0
 
ECHO.
 
ECHO.
 
REM 如果觉得分析太快,没有感觉,把下面注释去掉假装分析中,有停顿感
 
ping -n 2 127.0.0.1>nul
  
 
::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日志存在: 执行成功标记
 
    ECHO.[ INFO ] ------------------------------------
 
    ECHO.         "%strFinished%"
 
    ECHO.
 
) ELSE (
 
    IF %blnException% EQU 0 ECHO.[ INFO ] 分析Monkey日志结果: Monkey执行异常中断,请重新执行Monkey脚本!
 
    ECHO.
 
)
  
 
REM 如果blnException不为0,说明存在异常,改变字体为淡紫色
 
IF %blnException% NEQ 0 (
 
    Color 0D
 
    ECHO.[ INFO ] 分析Monkey日志结果:存在异常日志,请手工再仔细检查!
 
    ECHO.
 
) ELSE (
 
    ECHO.[ INFO ] 分析Monkey日志结果:正常
 
    ECHO.
 
)
 
ECHO.
 
ECHO.[ EXIT ] 按任意键关闭窗口...
 
PAUSE>nul

二、将以上脚本复制到一个文本文件中,命名为xx.bat

三、对脚本文件进行二次编辑

  1. 获取包名:①aapt dump badging [XXaaayy.apk],例如:package: name='com.jddl.rbr'②只记得大概,不记得详细包名。例如adb shell pm list packages b2
  2. 修改命令adb shell monkey -p com.jddl.rbr --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 100000 > "%monkeyLogFile%"中的包名,如:com.jddl.rbr
  3. 修改monkey执行次数:-v -v -v 100000,这个100000代表执行100000次点击。
  4. 保存,连接手机,打开手机开发调试模式
  5. Monkey命令停止:cmd命令下输入adb shell 进入命名模式,执行命令ps | grep monkey  查看进程ID,kill +进程ID,杀掉进程 

四、命令简解

100000 执行伪随机事件的总操作次数

-p com.jddl.rbr 指定包名,如果未指定,如:adb shell monkey 1000。将命令随机发送到手机中的所有APP,随机执行1000个次事件

--throttle 500 单位毫秒。每执行一系列操作事件,停顿休息500ms

-v 日志级别。最高为三个,-v -v -v为打印输出最详细的日志,自己可以修改查看具体效果

--ignore-crashes 忽略崩溃/--ignore-timeouts 忽略超时/--ignore-security-exceptions 忽略安全异常。APP在操作过程中会存在崩溃、超时、异常等情况,导致monkey直接停止测试。忽略这些异常崩溃可继续执行,直到执行随机时间次数达到设定值。当不作任何配置的时候,默认为--pct-anyevent <percent>,此时所有事件的触发均为随机的。当所有事件的百分比加起重来小于100%的时候,多余的随机事件也将被转化为--pct-anyevent <percent>事件。超过时,系统会重新运算相应的比

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值