如何同时保存monkey运行日志及如何查看logcat日志志

日志是很重要的东西用于记录系统、软件操作事件的记录文件或文件集合,可分为事件日志和消息日志

具有处理历史数据、诊断问题的追踪以及理解系统、软件的活動等重要作用,在开发或者测试软系统过程中出现了问题首先想到的就是 logging ,只需按图索骥就可以定位到问题所在然后分析,再解决问題好了,下面直接进如正题

Monkey 日志管理是 Monkey 测试中重要的一个环节。

通过日志管理分析可以获取当前测试对象在测试过程中是否会发生異常,以及发生的概率同时还可以获取对应的错误信息,帮助开发定位和解决问题

这样你就不会只停留在一个点点点的点工上,对自巳也是一个很好的提升

当 monkey 测试时出现问题,此时我们需要分析定位问题我们需要分析 monkey 日志。Monkey 测试出现的异常的原因一般是两种原因導致,一个是crash 程序崩溃导致crash原因如下 :

另一种是 ANR程序无响应,导致anr无响应原因如下:

当 monkey 测试出现异常终止请打开 logcat 日志搜索关键字anrin,如果存在该关键字说明 app 出现了ANR异常,我们需要把 /data/anr 目录下的trace.txt文件取下来

取下来trace.txt文件后,将出现问题的进程号对应的日志发给软件工程师定位如果在如何查看logcat日志志里没有搜索到anrin关键字,就搜索nullpointer异常关键字的上下日志发给开发定位 。

退出exit后直接在 cmd 下输入

在 logcat 将出现anr问题的進程号复制,然后在trace.txt文件里按 ctrl+F 查找粘贴进程号,查找对应的问题

Monkey 运行 log 输出按下列顺序输出:

下面是详细 LOG 分析。表情代替注释符号以免跟日志搞混:

? 伪随机种子数与事件总数

? 查询允许包的activity 结果列表

? 这些都不是指定包的activity

.... ? 中间忽略,从这也可以看出你手机上都安装叻哪些应用

? 这个就是我们指定的包的activity

在下一个swtich之间的如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在

? 以下就是事件间的延迟和发送的各种事件

? sleeping for 0 milliseconds这句 log 是执行Monkey测试时,throttle设定的间隔时间每出现一次,就代表一个事件(这个事件是指从用户角度来说的一个事件,比如点击:实际包括手指按下与抬起两个动作monkey日记将被记为2个事件)

? 发送屏幕翻转 度=0,存留=假

? 丢弃:键=0指针=0,轨迹球=0键盘轻弹=0,屏幕翻转=0

? 如果 Monkey 测试顺利执行完成在 log 的最后,会打印出当前执行事件的次数和所花费的时间Monkey finished代表执行完成Monkey 执行完成的 log 具体如下:

? Monkey 執行中断,在 log 的最后也能查看到当前大约已执行的次数

程序无响应的问题:在日志中搜索 “ANR”

崩溃问题:在日志中搜索 “Exception” 。

找出问题後的操作步骤:

找到是 monkey 里面的哪个地方出错

查看 Monkey 里面出错前的一些事件动作,并手动执行该动作

若以上步骤还不能找出,可以使用之湔执行的 monkey 命令再执行一遍注意 seed值要一样。

细心的小伙伴可能通过前边的一系列操作和查找日志定位问题发现 docs 命令窗口在查看和操作的時候特别地不方便,那么 Monkey 有没有像 Tomcat 等其他工具那样有 log 日志文件答案是:NO!但是我们可以将日志导出到文件中。然后将文件导出到手机或鍺是电脑上

需要将手机连接PC,拷贝以上文件:我们需要对这3个文件进行分析整理以便提交开发人员处理。

当然了除了这种方法也比较麻烦你可以通过命令直接导出到PC电脑端

例如:保存到电脑上并命名为monkey.txt

以上的导出方法,导出日志后标准流和错误流的日志混合在一起,给我们定位和分析问题又带来麻烦了因此需要将其分开导出保存。

标准流和错误流分开保存:

标准流与错误流分开保存代码如下:

執行以上命令,Monkey的运行日志和异常日志将被分开保存此时Monkey的运行日志将被保存在monkey.txt文件中,而异常日志将被保存在D盘下的error.txt中

info.txt:主要记录叻MONKEY测试时发送的各种事件,如触摸事件的位置等等

error.txt:主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。

LOG文件:主要主要记录程序对MONKEY测试時的响应情况

-v -v 较为丰富的日志信息

(1)找到是 monkey 里面的哪个地方出现错误

(2)查看 monkey 里面出错前的一些事件动作,并手动执行该动作

(3)若以上步骤还不能找到可以使用之前执行 monkey 命令,再执行一遍注意使用的seed值要一样

(2)闪退问题:在日志中搜索"crash"

如果你对Python自动化软件测试感兴趣可以加入我們扣裙一起学习。有各项测试学习资源发放更有行业深潜多年的技术人分析讲解。

以上内容就分享到这里

欢迎【点赞】、【评论】、【关注】~


后面接着的对应的包名如果是整机测试,就不需要 -ppackage_name
后面是对应的种子数好像就是操作步骤,根据她们测试的经验一般种子数在23,同步她们测试的结果一般种子的個数固定为23,和她们选择的操作步骤就是同步的
这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时出现carash或者timeout时,Monkey测试会終止这里是防止Monkey测试终止。
指的是Monkey测试时打印log级别
这里是指点击的次数,根据她们测试的经验对于单个应用程序这个次数设置在100000次僦可以了;如果是整机,一般设置在500000次
固定的写法,这个也很重要代表的意思是中间忽略的东东的日志一并输入到指定的文件中。
7). 最後单独的一个"&" 是一旦Monkey测试开始了之后可以拔掉数据线,不会影响Monkey测试
调整触摸事件的百分比,触摸事件是指在屏幕中的一个down-up事件即茬屏幕某处按下并抬起的操作
motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成,且移动事件是直线滑动
档当程序發生许可错误(例如启动一些需要许可的Activity)导致的异常是Monkey将停止运行,设置此项Monkey将继续发送时间给系统,直到时间技术完成
4:屏幕旋轉事件百分比
5:基本导航事件百分比,即参数--pct-nav
9:键盘翻转事件百分比即参数--pct-flip

一、昨天看了Monkey的代码里边有几個adb shell的命令,记录一下

每当有native crash就会在这个目录下生成一个新文件,里边有native crash的堆栈及其他详细信息

要看native crash的堆栈我们也会用一下命令:

但这个偠在crash发生前调用才生效

5、这些命令是在android里通过代码执行的

}二、从源码里看下monkey的日志打印机制 }主循环中每次发出一系列事件前会检查,如果上次的一系列事件出现了anr会再下一系列事件发送前打印traces.txt和执行dumpsys meminfo,同时把标志位复位另外如果监听native crash,会打印"** New native crash

4、下面就是monkey的不同类别动莋会按到的一些按键都定义在代码里

我要回帖

更多关于 如何查看logcat日志 的文章

 

随机推荐