Time will tell.
日志是很重要的东西,用于记录系统、软件操作事件的记录文件或文件集合,可分为事件日志和消息日志。
具有处理历史数据、诊断问题的追踪以及理解系统、软件的活动等重要作用,在开发或者测试软系统过程中出现了问题,首先想到的就是 logging ,只需按图索骥就可以定位到问题所在,然后分析,再解决问题。好了,下面直接进如正题。
1、 Monkey 日志管理
Monkey 日志管理是 Monkey 测试中重要的一个环节。
通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率。同时还可以获取对应的错误信息,帮助开发定位和解决问题。
这样你就不会只停留在一个点点点的点工上,对自己也是一个很好的提升。
2、Monkey Log 分析
当 monkey 测试时出现问题,此时我们需要分析定位问题,我们需要分析 monkey 日志。Monkey 测试出现的异常的原因,一般是两种原因导致,一个是crash
程序崩溃,导致crash
原因如下 :
- 程序存在空指针
- cpu不足
- 内存不足
另一种是 ANR
程序无响应,导致anr
无响应原因如下:
- 线程阻塞
- cpu不足
- 内存不足
查找分析原因:
-
当 monkey 测试出现异常终止,请打开 logcat 日志搜索关键字
anrin
,如果存在该关键字,说明 app 出现了ANR
异常,我们需要把 /data/anr 目录下的trace.txt
文件取下来。 -
取下来
trace.txt
文件后,将出现问题的进程号对应的日志发给软件工程师定位,如果在logcat
日志里没有搜索到anrin
关键字,就搜索nullpointer
异常关键字的上下日志,发给开发定位 。 -
当出现
ANR
后,需要导出,步骤如下: 1. 输入adb shell;2.输入cd /data/anr/ ;3. 输入ls 。退出
exit
后,直接在 cmd 下输入 -
adb pull /data/anr/traces.txt d:\trace.txt
-
在 logcat 将出现
anr
问题的进程号复制,然后在trace.txt
文件里按 ctrl+F 查找,粘贴进程号,查找对应的问题
Monkey 结果分类
Monkey 运行 log 输出,按下列顺序输出:
下面是详细 LOG 分析。表情代替注释符号,以免跟日志搞混:
☀ 伪随机种子数与事件总数
:Monkey: seed=1519697645236 count=10
☀ 允许测试包
:AllowPackage: 包名1
☀ Category包含的LAUNCHER
:IncludeCategory: android.intent.category.LAUNCHER
☀ Category包含的MONKEY
:IncludeCategory: android.intent.category.MONKEY
☀ 查询允许包的activity 结果列表
// Selecting main activities from category android.intent.category.LAUNCHER
☀ 这些都不是指定包的activity
// - NOT USING main activity com.android.browser.BrowserActivity (from package com.android.browser)
// - NOT USING main activity com.android.calendar.homepage.AllInOneActivity (from package com.android.calendar)
// - NOT USING main activity com.android.camera.Camera (from package com.android.camera)
.... ☀ 中间忽略,从这也可以看出你手机上都安装了哪些应用
☀ 这个就是我们指定的包的activity
// + Using main activity 包名1.ui.portal.WelcomeActivity (from package 包名1)
// Selecting main activities from category android.intent.category.MONKEY
☀ 种子为1519697645236
// Seeded: 1519697645236
☀ 事件百分比
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: -0.0%
// 6: 25.0%
// 7: 15.0%
// 8: 2.0