微信号:grzlwx

介绍:光荣之路官方资讯

AutoMonkey框架原理与应用(五)

2018-01-30 22:00 马华平

新书

速递


吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。

  文 | 马华平


三、Monkey测试的日志分析

2)伪随机事件流信息

当Monkey开始执行测试后,会顺序输出执行的事件流信息,主要是前面日志中的11大事件。Monkey日志中伪随机事件流信息如下:

:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.xxx.xxx/.PageStartActivity;end

    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xxx.xxx/.PageStartActivity } in package com.xxx.xxx

Sleeping for 500 milliseconds

:Sending Touch (ACTION_DOWN): 0:(9.0,893.0)

    // Injection Failed

:Sending Touch (ACTION_UP): 0:(9.040771,884.45905)

    // Injection Failed

Sleeping for 500 milliseconds

:Sending Key (ACTION_DOWN): 23    // KEYCODE_DPAD_CENTER

:Sending Key (ACTION_UP): 23    // KEYCODE_DPAD_CENTER

......

3)异常信息

当Monkey执行过程中遇到错误时,会输出相应异常信息。Monkey日志中异常信息(ANR情况,需获取traces.txt文件,命令adb pull /data/anr/traces.txt)如下:

// NOT RESPONDING: com.xxx.xxx(pid 6143)

ANR in com.xxx.xxx(com.xxx.xxx/.ui.CourseDetailsActivity), time=5339522

// ANR的详细信息

Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago.  Wait queue length: 2.  Wait queue head age: 9513.3ms.)

--------------------打赏⬇小编------------------ --------------------打赏⬆小编------------------

4)Monkey执行结果信息

当Monkey执行完事件后,会输出执行结果信息,其中包括执行的事件数量、旋转的角度、丢失的事件数量、网络状态以及Monkey最终的执行结果。Monkey日志中执行结果信息如下:

// 执行的事件数量

Events injected: 808

// 旋转的角度

:Sending rotation degree=0, persist=false

// Generated profiling reports in /data/misc

// 丢失的事件数量

:Dropped: keys=0 pointers=10 trackballs=0 flips=0 rotations=0

// 网络状态

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

// Monkey最终的执行结果

// Monkey finished

如果执行过程中出现异常导致执行失败,会输出失败的原因,第几个事件执行失败以及所使用的随机种子值。Monkey日志中执行结果异常信息如下:

// 显示Monkey执行失败

** Monkey aborted due to error.

Events injected: 35

:Sending rotation degree=0, persist=false

// Generated profiling reports in /data/misc

:Dropped: keys=1 pointers=8 trackballs=0 flips=0 rotations=0

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

// 提示在执行到第35个事件时出现Crash,以及所使用的随机种子值是4007。

** System appears to have crashed at event 35 of 92665 using seed 4007

3. 搜索Monkey日志并统计测试结果:

1)程序无响应的情况:搜索关键字“ANR in”

2)崩溃的情况1:搜索关键字“CRASH”

3)崩溃的情况2:搜索关键字“Exception”

4)内存溢出的情况:搜索关键字“OOM”

5)测试成功的情况:搜索关键字“Monkey finished”

6)其他情况:测试执行中断

根据统计结果,可以得到各种异常情况出现的次数,已经出现在哪个日志文件中,出现该错误的包名。如果需要更详细的错误信息,打开对应的Monkey日志文件查询。通过详细日志信息,测试可以定位到引起异常的原因,已经出现异常的代码行信息。常见的Java异常信息,如表1:

(待续)

上期精彩:

AutoMonkey框架原理与应用(一)--APP测试前瞻

AutoMonkey框架原理与应用(二)--Monkey基础知识与测试场景

AutoMonkey框架原理与应用(三)--Monkey测试策略

AutoMonkey框架原理与应用(四)--Monkey测试的日志分析(上)

免费送书:

python版《Selenium WebDriver 3.0 自动化测试框架实战指南》

《疯狂前端开发讲义-jQuery+AngularJS+Bootstrap前端开发实战》

喜马拉雅app搜索并收听“光荣之路”电台

光荣之路
招聘|征稿|合作 |QQ群
735821166@qq.com
python群:457561756
性能群:415987441
招聘群:203715128
 
光荣之路 更多文章 AutoMonkey框架原理与应用(四) AutoMonkey框架原理与应用(三) 技术还是管理? 招聘速递·大数据测试·华为研究所·西安 免费送书 | 《疯狂前端开发讲义-jQuery+AngularJS+Bootstrap前端开发实战》
猜您喜欢 教你免费且快速地搭建个人网站 干货丨机器学习与人工智能学习资源导引(初学者必读) 美团 P2P 图书馆实践:5天时间1845册图书共享入库 Rails中url_for的使用 分享一个CQRS\/ES架构中基于写文件的EventStore的设计思路