monkey的结果通过什么日志进行分析,如何分析,log的放在哪个目录下?

1、monkey的结果通过什么日志进行分析?分析的文件分别在哪个目录下?如何分析? 2、monkey的log是自动放在哪个目录的,有的说是在手机/data/local/tmp/log.txt路径下,但是我这没找到这个路径,求解啊!!
关注者
25
被浏览
6,109

正好今天在整理Monkey相关的一个文档,贴出部分内容,希望对你有点用处。


Monkey的基本使用

$ adb shell monkey [options]

如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个常见用法的示例,它启动指定的应用程序,并向其发送1000个伪随机事件:

$ adb shell monkey -p package_name -v 1000 > F:\monkeylog.cat

-p 后面的package_name为你安装在手机或模拟器上的要进行Monkey测试的APP包名

-v 表示模拟多少次事件进行测试

> 后面的路径为将此次测试的log输出到哪个位置


0:触摸事件百分比,即参数–pct-touch
1:滑动事件百分比,即参数–pct-motion
2:缩放事件百分比,即参数–pct-pinchzoom
3:轨迹球事件百分比,即参数–pct-trackball
4:屏幕旋转事件百分比,即参数–pct-rotation
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相同,则两次Monkey测试所产生的事件序列也相同。


示例:

Monkey 测试1:adb shell monkey -p com.airbnb.lottie –s 10 -v 100

Monkey 测试2:adb shell monkey -p com.airbnb.lottie –s 10 -v 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的。


(2)注意查找日志中的无响应问题和崩溃问题。无响应问题可以在日志中搜索 “ANR” ,崩溃问题搜索 “CRASH” ,内存泄露问题搜索"GC"(需进一步分析),异常问题搜索 “Exception”(如果出现空指针, NullPointerException,需格外重视)。

例如:

(3)为了进一步分析问题的来源,可以找到Log中出现问题处的前一次Switch,随后根据Log主要是查看相关的Activity。

例如下面的Log执行的就是MainActivity。

:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.airbnb.lottie/.samples.MainActivity;end