本文主要是介绍Monkey性能测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、命令执行格式
adb shell monkey -p com.best.android.v6app -v 100
-v 指定打印日志的级别:
-v 打印最基本的事件
-v-v 更全面的信息
-v-v-v 最全面的信息
-p 指定测试的APP包名。
-s 指定伪随机数生成器的seed值,如果seed相同,则两次monkey 测试产生的事件序列也相同。
--throttle(毫秒):指定每个事件结束后的间隔时间,降低系统压力;如果不指定系统会尽快的发送事件序列。
--ignore-crashes 忽略App的崩溃。
--ignore-timeouts:忽略超时。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告。
--ignore-security-exceptions:忽略安全异常。
--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--kill-process-after-error:发生错误后直接杀掉进程。
--monitor-native-crashes:跟踪本地方法的崩溃问题。
--wait-dbg:直到连接了调试器才执行monkey测试。
二、指定随机事件的百分比
--pct-touch <percent> (触摸事件)
--pct-motion <percent> (滑动事件)
--pct-trackball <percent> (轨迹球事件)
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key)
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之间的切换)
--pct-flip <percent>(键盘翻转事件)
--pct-pinchzoom <percent>(缩放事件)
--pct-anyevent <percent>(任意事件)
三、随机事件分为10种类型,分别为:
0:触摸事件百分比,即参数--pct-touch
1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,(无对应参数)
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch
9:键盘翻转事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
四、日志分析:
1.Seed字段:我们刚才执行monkey时,没有指定seed,在报告一开始,可以看到其自动生成的seed值,如果我们指定了seed,则可以使用相同的seed来生成相同的序列。注:不能完全重复上次操作(每次事件具体的坐标不同),但是具体操作事件是相同的。
2.AllowPackage字段:允许com.android.calendar包中的Activity(活动)
3.IncludeCategory字段:启动的意图
4. Switch:表示跳转到Activity。
5. Allowing start of Intent:表示允许启动这个活动意图。
6.Sleeping:表示允许在发送各种随机事件时有一个延时。如果没有表示立即执行,不停顿。
7.Sending:表示具体执行的随机事件。
8. injected:表示执行具体事件的次数。
9. rotation:屏幕旋转信息,角度和是否保持旋转状态。
10. Dropped:丢弃的事件。
11.网络耗时:包括:手机占用,wifi占用,连接占用的时间。
五、查看ANR和程序崩溃问题:
内存泄露问题搜索"GC",需进一步分析。
无响应问题可以在日志中搜索 “ANR”。
崩溃问题搜索 “CRASH”。
异常问题搜索 “Exception”。
空指针问题“ NullPointerException”,需格外重视。
六、运行参数
-p <allowed-package-name>
如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity。 如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此 同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个 包,需要使用多个 -p选项,每个-p选项只能用于一个包。
-c <main-category>
如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。 如果不指定任何类别,Monkey将选 择下列类别中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多 个类别,需要使用多个-c选项,每个-c选 项只能用于一个类别。
七、调试参数
--dbg-no-events
设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不 会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约 束、以及一个保持Monkey运 行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
--hprof
设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。 这将会在data/misc中生成大文件(~5Mb),所以要小心使用它。
--ignore-crashes
通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将 继续向系统发送事件,直到计数完成。
--ignore-timeouts
通常,当应用程序发生任何超时错误(如“Application Not Responding”对 话框)时,Monkey将停止运行。如果设置此选项,Monkey将继 续向系统发送事件,直到计数完成。
--ignore-security-exceptions
通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将 停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
--kill-process-after-error
通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系 统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之 后,简单地保持在最后的状态。
--monitor-native-crashes
监视并报告Android 系统中本地代码的崩溃事件。如果设置了--kill-process-after-error, 系统将停止运行。
--wait-dbg
停止执行中的Monkey,直到有调试器和它相连接。
这篇关于Monkey性能测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!