网站建设计划 文库,苏州代做淘宝网站,科技有限公司经营范围,西宁网站seo公司目录
常用参数
-p 测试的包名列表
-v 显示日志详细程度
-s 伪随机数生成器的种子值
--throttle 毫秒
--ignore-crashes 忽略崩溃 --ignore-timeouts 忽略超时
--monitor-native-crashes 监视本地崩溃代码
--ignore-security-exceptions 忽略安全异常 …目录
常用参数
-p 测试的包名列表
-v 显示日志详细程度
-s 伪随机数生成器的种子值
--throttle 毫秒
--ignore-crashes 忽略崩溃 --ignore-timeouts 忽略超时
--monitor-native-crashes 监视本地崩溃代码
--ignore-security-exceptions 忽略安全异常
--kill-process-after-error 发生错误停止运行并保持当前状态
--pct-事件类别事件类别百分比
实例
Monkey日志分析
在日志中搜索 “ANR”
崩溃问题搜索 “CRASH”
异常问题搜索 “Exception” 内存泄露问题搜索GC需进一步分析
参考资料 adb的操作命令格式一般为adb shell monkey 命令参数
常用参数
-p 测试的包名列表
用于约束限制用此参数指定一个或多个包。指定包之后Monkey将只允许系统启动指定的APP。如果不指定包Monkey将允许系统启动设备中的所有APP。
不指定包adb shell monkey 50
指定一个包执行50次adb shell monkey -p 包名 50
指定多个包执行50次adb shell monkey -p 包名1 -p 包名2 50
具体有哪些包名可以通过adb shell进入data/data/路径下ls查看。
-v 显示日志详细程度
用于指定反馈信息级别信息级别就是日志的详细程度差异为-v的数量。总共分3个级别分别对应的参数
Level 0 : adb shell monkey -p 包名 -v 100 //默认级别仅提供启动提示、测试完成和最终结果等少量信息
Level 1 : adb shell monkey -p 包名 -v -v 100 //提供较为详细的日志包括每个发送到Activity的事件信息
Level 2 : adb shell monkey -p 包名 -v -v -v 100 //最详细的日志包括了测试中选中/未选中的Activity信息
-s 伪随机数生成器的种子值
用于指定伪随机数生成器的seed值。如果使用相同的种子值重新运行Monkey它将生成相同的事件序列[-s 500 (事件序列) 1000事件数]例如
test1adb shell monkey -p com.youdao.dict -s 10 -v 100
test2adb shell monkey -p com.youdao.dict -s 10 -v 100
--throttle 毫秒
在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项Monkey将不会被延迟事件将尽可能快地被完成。
例如adb shell monkey -p com.youdao.dict --throttle 200 50 //表示执行50个用户事件数事件间隔为200毫秒
--ignore-crashes 忽略崩溃
当应用程序崩溃或发生任何失控异常时Monkey将停止运行。如果设置此选项即使应用程序崩溃Monkey将继续向系统发送事件直到事件计数完成。
例如adb shell monkey -p com.youdao.dict --ignore-crashes 100 //测试过程中即使程序崩溃Monkey依然会继续发送事件直到事件数目达到100为止 --ignore-timeouts 忽略超时
当应用程序发生任何超时错误时(如“Application Not Responding”)Monkey将停止运行。如果设置此选项即使应用程序发生ANR错误Monkey将继续向系统发送事件直到计数完成。
例如adb shell monkey -p com.youdao.dict --ignore-timeouts 100 //测试过程中即使程序发生ANR错误Monkey依然会继续发送事件直到事件数目达到100为止
--monitor-native-crashes 监视本地崩溃代码
监视并报告Android系统中本地代码的崩溃事件。
例如adb shell monkey -p com.youdao.dict --monitor-native-crashes 100 //原理同上
--ignore-security-exceptions 忽略安全异常
当应用程序发生许可错误时如证书许可网络许可等Monkey将停止运行。如果使用此参数即使应用程序发生许可错误Monkey依然会发送事件直到事件计数完成。
例如adb shell monkey -p com.youdao.dict --ignore-security-exceptions 100 //原理同上
--kill-process-after-error 发生错误停止运行并保持当前状态
当应用程序发生错误时停止其运行。如果指定此参数当应用程序发生错误时应用程序停止运行并保持在当前状态注意应用程序仅是静止在发生错误时的状态系统并不会结束该应用程序的进程。
例如adb shell monkey -p com.youdao.dict --kill-process-after-error 100 //同上
--pct-事件类别事件类别百分比
用于指定每种类别事件的数目百分比在Monkey事件序列中该类事件数目占总事件数目的百分比
操作事件简介
Monkey所执行的随机事件流中包含11大事件分别是触摸touch、手势motion、缩放pinchzoom、轨迹trackball、屏幕旋转rotation、基本导航nav、主要导航mojornav、系统按键syskeys、Activity启动appswitch、键盘翻转flip、其他事件anyevent。Monkey通过这11大事件来模拟用户的常规操作对手机App进行稳定性测试。
--pct-touch 触摸事件
--pct-motion 手势事件
–pct-pinchzoom 二指缩放事件
–pct-trackball 轨迹事件
–pct-rotation 屏幕旋转事件
–pct-nav 基本导航事件
–pct-majornav 主要导航事件
–pct-syskeys 系统按键事件
–pct-appswitch 启动activity事件
–pct-flip 键盘翻转事件
–pct-anyevent 其他类型事件
实例
adb shell monkey -p com.android.gallery3d -s 50 --ignore-crashes --ignore-timeouts --monitor-native-crashes --ignore-security-exceptions --kill-process-after-error --throttle 300 -v -v -v 10000 D:\monkey_log\monkey_log.txt //将跑完monkey后写入到电脑D盘的指定目录下并生成一个文件 Monkey日志分析
正常情况 如果Monkey测试顺利执行完成 在log的最后 会打印出当前执行事件的次数和所花费的时间 // Monkey finished 代表执行完成\
异常情况
Monkey 测试出现错误后一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
在日志中搜索 “ANR”
程序无响应的问题: 在日志中搜索 “ANR”ANR: Application Not Responding 应用程序无响应。ANR一般有以下三种类型
1KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应 2BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成
3ServiceTimeout(20 seconds) --小概率类型Service在特定的时间内无法处理完成
此外当ANR问题发生后我们可以使用adb pull命令此命令无需root权限从被测设备的/data/anr目录下导出名为traces.txt的对应log文件。例子 adb pull /data/anr/traces*.txt C:\
崩溃问题搜索 “CRASH” 异常问题搜索 “Exception”
如果出现空指针 NullPointerException需格外重视肯定有bug
下面的属于monkey自己的问题。不用管。
:Sending Flip keyboardOpenfalse
Got IOException performing flipjava.io.IOException: write failed: EINVAL (Invalid argument)
// Injection Failed 内存泄露问题搜索GC需进一步分析
当手机提示Out of Memory内存不足时基本确定有内存泄露的问题。
当查看logcat时有GC字段可能有内存泄露问题。
与GC相关的字段有如下四个
GC_FOR_ALLOC 在分配内存时内存不够引发 GC_EXPLICIT 表明GC被显式请求触发的如System.gc调用
GC_CONCURRENT, 表明GC在内存使用率达到一定的警戒值时自动触发
GC_BEFORE_OOM, 表明在虚拟机抛出内存不够异常OOM之前执行最后一次回收内存垃圾
当出现内存泄露问题时可以加上--hprof参数再执行一次monkey测试便可获得对应的profiling报告。
adb shell monkey -p 包名 --hprof --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 c:\monkey.txt
如果指定了这个选项monkey会在发送时间的前后生成内存快照文件一般会在手机设备的/data/misc目录下生成hprof的文件。注 /data/misc 需要root权限可以在手机上安装个RE查看或通过手机助手查看 参考资料
adb命令之monkey使用_adb monkey-CSDN博客
app压力测试1-------adbmonkey 报告分析_adb monkey app压测后文件怎么分析-CSDN博客
monkey操作,获取包名参数日志百分比-CSDN博客