详解Monkey自动化测试(日志分析)

讲解如何利用monkey分析ANR、CRASH、以及monkey运行期间的系统日志。

1.log文件配置

首先对于report的日志命名需要有相应的规范,这里建议是将level 1的文件命名为verbose,将level 2的文件命名为error。前者主要是用来观看日志信息和事件分布信息,后者主要是用来观看error的信息,做进一步的bug分析。

当然,不同的开发者命名规则可能不一样,可以按照自己的习惯配置。

Code description

2>/sdcard/error.txt

Level 2日志保存到sdcard上的error.txt中

1>/sdcard/verbose.txt

Level 1日志保存到sdcard上的verbose.txt中

在monkey自动化测试(命令行)这里我们需要在最后的命令行里面加上配置。

 
  1. adb shell monkey -p jixiang.com.myandroid --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-motion 60 -v -v --throttle 200 -s 200 1000 2>d:/error.txt 1>d:/verbose.txt

  2. // ”2>/sdcard/error.txt 1>/sdcard/verbose.txt"

  3. //若是使用PC运行,并保存在PC端,不需加" ",但是若是需要保存在手机文件夹中,需要添加

  4. 复制代码

2.获取log文件

这里,先对于log日志文件做一个概要性解释

Filedescription

error.txt

记录了MONKEY测试时产生的一些ANR、强制关闭等异常

verbose.txt

记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等

log.txt

此文件在手机上的LOG文件夹中(data/log目录)中,主要主要记录程序对MONKEY测试时的响应情况

通过检查verbose.txt文件的反馈信息,底部出现

monkey运行结束

我们需要对这3个文件进行分析整理,以便提交开发人员处理。

2.1 log.txt日志

log日志在使用Android Studio自带的logcat就可以查看,这里不再赘述。

2.2 verbose.txt运行日志

我们先对verbose包进行解析。以下是概略性截图

其中

 
  1. //seed为随机数生成器seed值,count为本次设置的操作次数

  2. :Monkey: seed=200 count=1000

  3. //后面为指定测试的包名

  4. :AllowPackage: com.changan.facein

  5. //monkey进程的category

  6. :IncludeCategory: android.intent.category.LAUNCHER

  7. :IncludeCategory: android.intent.category.MONKEY

然后,在后面会有一个数据列表,这个是用来展示本次测试所有事件的百分比,我这里直接贴出7.0(我的手机是小米NOTE3 7.0系统),这里注意,不同的操作系统,得出来参数个数会不一样,但是都大同小异。

 
  1. * Event percentages本次测试的事件分布频率

  2. * 0:触摸事件百分比,即参数–pct-touch

  3. *1:滑动事件百分比,即参数–pct-motion

  4. *2:缩放事件百分比,即参数–pct-pinchzoom

  5. *3:轨迹球事件百分比,即参数–pct-trackball

  6. *4:屏幕旋转事件百分比,即参数–pct-rotation

  7. *5:获取危险权限事件百分比,即参数–pct-permission//低版本没有

  8. *6:基本导航事件百分比,即参数–pct-nav

  9. *7:主要导航事件百分比,即参数–pct-majornav

  10. *8:系统事件百分比,即参数–pct-syskeys

  11. *9:Activity启动事件百分比,即参数–pct-appswitch

  12. *10:键盘翻转事件百分比,即参数–pct-flip

  13. *11:其他事件百分比,即参数–pct-anyevent

  14. */

  15. // Event percentages:

  16. // 0: 6.6666665%

  17. // 1: 60.0%

  18. // 2: 0.8888889%

  19. // 3: 6.6666665%

  20. // 4: -0.0%

  21. // 5: -0.0%

  22. // 6: 11.111112%

  23. // 7: 6.6666665%

  24. // 8: 0.8888889%

  25. // 9: 0.8888889%

  26. // 10: 0.44444445%

  27. // 11: 5.7777777%

后面就是一个个switch的内容,由于过多但是内容格式相同,这里就截取其中的一段讲解 //swicth会告诉我们,在具体哪个界面进行测试

 
  1. Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.changan.facein/.activity.WelcomeActivity;end

  2.     // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.changan.facein/.activity.WelcomeActivity } in package com.changan.facein

  3.     // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.changan.facein/.activity.WelcomeActivity } in package com.changan.facein

  4. //motion时间,以及motion参数

  5. Sleeping for 200 milliseconds

  6. :Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEFT

  7. :Sending Key (ACTION_UP): 21    // KEYCODE_DPAD_LEFT

结尾处一般会有以下几行文字:

 
  1. //Events injected 截止次数

  2. Events injected: 1000

  3. :Sending rotation degree=0, persist=false

  4. :Dropped: keys=0 pointers=0 trackballs=0 flips=2 rotations=0

  5. //整个测试完成持续时间为ms。1s=1000ms

  6. ## Network stats: elapsed time=42539ms (0ms mobile, 0ms wifi, 42539ms not connected)

  7. //monkey测试结束标识

  8. // Monkey finished

到此对于Verbose的讲解已经结束。

2.3 error.txt 错误日志

error文件中,为发生错误后反馈的数据,一般没有任何错误发生时,数据为空,调试时最好忽略相应的错误,让程序可以继续运行下去。monkey检测到的错误类型分为三种:

CRASH:系统崩溃日志,当Apk存在崩溃的情况下会反馈相应的数据。

A N R:当ANR情况出现时,会反馈相应的数据。

常见的Exception:存在一些Exception的时,会反馈相应的数据

  如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

 最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值