Monkey测试结果分析

摘要:
在日志的开头,将显示Monkey执行的测试的种子值、执行时间和包名称。action=android.intent.action.MAIN;

一. 初步分析方法

 
Monkey测试出现错误后,一般的差错步骤为以下几步:
 
1、 找到是monkey里面的哪个地方出错
 
2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作
 
3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
 
一般的测试结果分析:
 
1、 ANR问题:在日志中搜索“ANR”. Application Not Response.
 
2、 崩溃问题:在日志中搜索“Exception”  异常。
 
 
二. 详细分析monkey日志
 
将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。
 
1.首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。
 
2.然后我们要分析log中的具体信息,方法如下:
 
  ①查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
 
:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end
 
  // Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt
 
  ②在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执行了一个单击的操作;
 
Sleeping for 500 milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。
 
SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN   代表当前执行了一个点击下导航键的操作;
 
Sending Pointer ACTION_MOVE     代表当前执行了一个滑动界面的操作。
 
:Sending Pointer ACTION_DOWN x=47.0 y=438.0
 
:Sending Pointer ACTION_UP x=47.0 y=438.0
 
Sleeping for 500 milliseconds
 
:SendKey (ACTION_DOWN): 20   //KEYCODE_DPAD_DOWN
 
:SendKey (ACTION_UP): 20   //KEYCODE_DPAD_DOWN
 
Sleeping for 500 milliseconds
 
:Sending Pointer ACTION_MOVE x=-2.0 y=3.0
 
:Sending Pointer ACTION_MOVE x=4.0 y=-3.0
 
:Sending Pointer ACTION_MOVE x=-5.0 y=-3.0
 
:Sending Pointer ACTION_MOVE x=3.0 y=4.0
 
:Sending Pointer ACTION_MOVE x=-4.0 y=1.0
 
:Sending Pointer ACTION_MOVE x=-1.0 y=-1.0
 
:Sending Pointer ACTION_MOVE x=-2.0 y=-4.0
 
  ③如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:
 
Events injected: 6000
 
:Dropped: keys=0 pointers=9 trackballs=0 flips=0
 
## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)
 
// Monkey finished
 

三、关于Monkey测试的停止条件

Monkey Test执行过程中在下列三种情况下会自动停止:

1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。

免责声明:文章转载自《Monkey测试结果分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win10中的控制台程序会被鼠标单击暂停运行的解决办法NPOI随笔——图片在单元格等比缩放且居中显示下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

树莓派开启crontab日志

crontab是Linux下类似Windows计划任务的一个程序,之前利用过这个程序来设定闹钟。后来发现找不到执行任务之后产生的日志文件。有时候需要配合日志文件作一些调试功能,经过一番折腾发现,系统默认禁止了日志文件的产生,重新开启即可。 实验环境 硬件:树莓派3b一台 操作系统:Raspbian with desktop 配置日志文件rsyslog.c...

Linux ${} 变量内容的提取和替换功能等

[root@localhost log]# var=/dir1/dir2/file.txt 1、对变量取值 [root@localhost log]# echo ${var} /dir1/dir2/file.txt 2、求字符串的长度 [root@localhost log]# echo ${#var} 19 3、提取位置3到最后的字符 [root@loc...

通过尾递归避免栈溢出

JavaScript中的递归即函数内调用函数自身,但递归是非常耗内存的,每一次调用都会分配一定的栈空间,达到一定的数量(具体看浏览器)便会溢出报错。 function recursion (num) { if (num === 1) { return 1; } return num + recursion(--num...

【转载】Iptables详解

参考链接:http://blog.csdn.net/reyleon/article/details/12976341 Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 L...

Mongodb在windows下通过配置文件配置和访问

Mongodb在windows下通过配置文件配置和访问博客分类: Mongodb 数据库 mongomongodbwindows配置 Mongodb配置文件配置: 第一步:在“D:Mongodb”目录下新建一个文件,命令方式不限,例如新建一个mongodb.conf 第二步:在mongodb.conf中配置我们需要的配置项 关于具体的配置项,我们可以通...

function邮件php smtp邮件发送代码

最近研究function邮件,稍微总结一下,以后继续补充: <?php error_reporting(E_ALL ^ E_NOTICE); ##########服务器参数设置################ $smtpserver = "smtp.163.com";//SMTP服务器 $smtpserverport = 25;//SMTP服务器端口...