sqliteandroid之monkey测试

 本文同时揭橥于自家个人网站
www.yaoxiaowen.com

monkey测试算是android自动化测试当中最简便易行的一种工具了。即便简易,但是对此测试app的祥和健康,减少崩溃依旧相比实惠的。所以指出app可以常常做些monkey测试,下班将来,打开monkey测试,就绝不管了,第二天来了翻看结果就好。
    

一:monkey介绍
Monkey就是Android的一个命令行工具,是运作在手机里的。(可以模拟器可以真机),它经过向系统发送伪随机的用户事件流(比如手势,按键,触摸屏触摸事件等),来落到实处对app的测试。当然,因为它的风云流多少是轻易的,不可以自定义,这一点也好不不难一个瑕疵。
据此monkey那几个名字或者挺适合的,就是像猴子那样乱点,

二,使用最初准备
1,我们平昔在cmd命令工具里应用adb命令等,都要进去adb所在的文件目录,这一点相比较费心,所以大家要把adb命令添加进window的环境变量。方法如下(win7为例):
逐条点击:计算机->属性->高级系统设置->高级->环境变量->
系统变量 ->编辑 Path ,在在变量值前面添加一行
C:\Users\Administrator\AppData\Local\Android\sdk\platform-tools,(当然这是自个儿要好的处理器目录,其外人的总括机目录可能会不一样)。
这么 platform-tools文件夹上面的
adb,sqlite3,fastboot等工具都足以平昔运用了。
2,手机打开开发者格局里面的usb调试,然后 通告栏选项内部要接纳传输文件,而不可以选拔 只充电,
  usb连接真机后,(或者打开模拟机),使用命令
  adb devices
  显示 内容:
  List of devices attached
  ec771855 device
那样就象征adb已经三番五次到手机了。

三,运行monkey

cmd命令行输入指令。
$ adb shell monkey -s 161218 -p com.tc.tickets.train.dev -v -v –throttle
500 60000 >
C:\Users\Administrator\Desktop\tongcheng\log\moneky_12121802.txt

一些option的解释:
  adb shell
monkey:启动monkey,monkey其实是经过android环境的shell来启动的。
  -s 伪随机数生成器的 seed
值。相同的种子值,生成相同的事件体系,所以每一回运行前那几个值要改成差距,改成当天的日子是最简易好记的。
  -p 须要测试的app包名,约束限制,但是事实上能够指定多个包的,比如: adb
shell monkey -p com.yaoxiaowen.prj –p com.yaoxiaowen.demo
  -v
  用于指定反馈音讯级别(新闻级别就是日记的详细程度),总共分3个级别,分别对应的参数如下表所示:
    日志级别 : Level 0
      写法示例 :–v
      表明 :默认值,仅提供启动唤醒、测试完了和终极结出等为数不多消息

    日志级别 : Level 1
      写法示例 :–v -v
      表达 :提供较为详细的日记,包蕴每个发送到Activity的事件信息

    日志级别 : Level 2
      写法示例 :–v -v -v
      表明 :最详细的日记,蕴涵了测试中选中/未入选的Activity音讯

  –throttle (毫秒)
  在事变之间插入固定延迟。通过那一个选项可以缓慢 Monkey
的执行进程。假诺不点名该拔取, Monkey
将不会被推迟,事件将尽心快地被产成。所以我提出仍然参与势必的延期,因为一般人士指头的点击速度,  是无论怎么着也不容许跟得上机器的点击速度的,所以我以为,假诺是因为
点击太快而引起的bug,那么是可以 忽略的。

  60000
  这条命令里,是象征一起运行60000次事件流。设定这些值以前,记得结合–throttle的值,总计一下您想让它运行的年月(一般自己设置的就是
让它运行一夜然后停止,第二天上班,正好来看结果).

  >
C:\Users\Administrator\Desktop\tongcheng\log\moneky_12121802.txt
  那条命令的情趣是,让它输出的log音讯导入到桌面的moneky_12121802.txt文书里,借使不设置那句话,log音讯都输出在cmd命令行里的,不便民查看,所以仍然把它输入到文件里好好查看吧。

本来,还有不少别样的下令,可是那多少个大约的下令,就充分我们测试使用了。

四:monkey为止条件
若是应用程序崩溃 闪退,或者有其它失控万分,或者
app不响应(ANR)。monkey将会告一段落并报错。否则它就会举办你设定的次数。(比如
60000次),执行到位之后才会终止。

五:怎样中途甘休monkey
monkey有个很令人抓狂的特性,就是要是跑起来之后,哪怕你把usb数据线和pc断开,monkey脚本如故会淡定的施行下去。所以我们假诺想中途甘休,那么那里有个法子。

  1. adb shell
  2. top | grep monkey (或者 ps | grep monkey 也行)
  突显如下:
  5447 0 1% S 10 262960K 10328K root com.android.commands.monkey
  5447 0 0% S 10 262960K 10324K root com.android.commands.monkey
  3,找到id为5447的进程,然后再kill掉就OK了
  kill -9 5447

六:Monkey测试结果分析
得到monkey的log文件,我们是经过重大字来判断测试是还是不是正规的
1,若是末了一行内容是,Monkey
finished,那么就标志此次测试进程中,没有格外暴发。
eg:
## Network stats: elapsed time=3799ms (3799ms mobile, 0ms wifi, 0ms
not connected)
// Monkey finished
2,评释存在极度的显要字:CRASH ,NOT RESPONDING, ANR,Exception,Out of
memory,error
假定存在那么些首要字,就评释测试暴发了尤其,大家就要整合
log的上下文,来判定 格外暴发的案由,然后修改代码了。

3,非正常停止,也不曾对应的这几个关键字。
那就是说此时,就要看看log文件的尾声几行是何等内容了,举办相应的辨析
,假使条分缕析不出来吗非凡,这就表明是表面原由此非程序本身原因了。比如断电关机,内存不足等等。

七:monkey日志自动分析脚本
对此monkey的剖析,手动搜索太费劲,所以有脚本来处理是最好的。我在
http://www.cnblogs.com/findyou/p/4106285.html
那篇博客上找到一个bat脚本(再度谢谢对方的享受),(可是她那篇博客的代码部分,直接复制到bat文件中,有荒唐,让自身折腾了
好久,估算是因为编码难点啊),我把那些bat脚本,做了某些修改。放在csdn上(下载地址
http://download.csdn.net/detail/yaowen369/9759769),可以一贯下载使用。
动用办法:间接将Monkey日志的txt文件,用鼠标拖到此bat文件上,就输出执行了。

八:其余标题
有个难点干扰了我好久,因为app代码中有一部分h5页面,monkey测试有时候可能会跻身那个html页面,进入简单,
跳出就很难了,也找不到更好的解决办法,只可以在代码中添加一个 MONKEY_TEST
的boolea值开关,然后在进入h5页面的button按键事件时展开判断,举行monkey测试时打开那些值,专门编译一个apk,就可以防止其跳入h5页面了。

 

但愿那篇博客可以支持到利用monkey测试的同行们,文中有何不足或不当的地方,欢迎批评指正。

 


作者: www.yaoxiaowen.com
github: https://github.com/yaowen369

网站地图xml地图