Monkey测试log的保存与分析

monkey -p com.lenovo.ideafriend --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-touch 30 -s 1 -v -v --throttle 200 100000 2>/sdcard/error.txt 1>/sdcard/info.txt



2>/sdcard/error.txt

Leve1 2日志保存到sdcard上的error.txt中

 

1>/sdcard/info.txt

Leve1 1日志保存到sdcard上的info.txt中




1、Monkey测试介绍

 

Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

 

传统意义上,Monkey测试主要针对的是应用的健壮性与稳定性,它通过大量的随机的用户事件来检测应用是否会异常。

 

主要使用Monkey测试来进行内存泄露检查。

2.2、测试准备与执行

 

在Monkey测试前,必须进行以下准备

 

Ø  手机屏幕超时设置为30分钟,防止手机进入锁屏状态。

 

Ø  插入SIM卡和存储卡后将手机开机,开启ADB模式,连接到PC(存储卡剩余空间尽量留大,建议1G以上)

 

Ø  开启系统log。(具体可依据每个机型平台决定)

 

Ø  在PC上执行 运行—>CMD,在弹出的命令窗口中,输入adb devices,检查设备是否连接

 

Ø  在弹出的命令窗口中,输入adb shell,进入Linux Shell

 

Ø  输入Ideafriend Monkey命令。如下:

 

2.3、结果检查与分析

 

测试结束后,需要将手机连接PC,拷贝以下文件:

 

Ø  info.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等。

 

Ø  error.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。

 

Ø  LOG文件:此文件在手机上的LOG文件夹中中,主要主要记录程序对MONKEY测试时的响应情况。

 

我们需要对这3个文件进行分析整理,以便提交开发人员处理。

 

2.3.1、检查测试是否完成

 

通过info.txt文件,可以查看Monkey是否执行成功。如下图

 

 

2.3.2、结果分析整理

 

前文有提及,我们目前执行Monkey测试的目的是为了检查是否有内存泄露,而这类问题主要是通过Log文件来体现的。

 

Error文件也记录了部分异常,考虑到这部分文件格式已经很规范,因此不需要再次整理。

 

Log文件记录了所有信息,因此我们需要进行初步分析整理后再提交研发,以减少研发工作量。

 

注意:内存泄露检查目前主要针对MTK平台,高通平台等其他平台目前的LOG还未将此部分信息体现。以下说明仅针对MTK平台的LOG。

 

通过mtklog文件中main_log文件,我们可以查看可能存在内存泄露代码所在具体位置。是否该行代码存在泄露需要开发人员进一步验证。我们只提供可能存在代码泄露的信息。

 

Main_log文件路径见相关LOG说明 。含有mian_log的文件都需要进行查看。搜索关键字“leak”,在搜索结果中,查看与Ideafreiend相关的代码。如下图:

 

 

注:com.lenovo.ideafriend:Ideafriend包名;CursorLeakDetecter: 游标泄露检查器

 

当发现相关LOG后,将可能存在内存泄露的代码所在区域(代码所在前后5行左右),拷贝到另外一个文档中(新建:mianlog.txt)。泄露的代码只需要拷贝一处即可。如下图:

 

 

注:红圈处在ideafriend代码中的677行可能存在泄露,此时只需拷贝一处即可

 

3、资料与扩展

 

3.1 Log信息查看工具可使用UltraEdit

 

3.2 Monkey扩展阅读

 

[1]Android压力测试工具Monkey介绍-V1.1-20110822.doc

 

[2]Monkey官网

 

http://developer.android.com/tools/help/monkey.html

 

[3]百度文库 Monkey测试介绍

 

http://wenku.baidu.com/view/476c79b8fd0a79563c1e72b6.html

 

 

 

 

 

4、Monkey log工具使用

 

Monkey测试后在Mobilelog文件中会产生多个main_log文件,里面含有详细的log执行记录,通过下面五步,挑选出我们所需要的信息。

 

1、  合并含有main_log文件,另存为main_log.txt。

 

 将上述文件合并并重命名为main_log.txt

 

2、  查找标注可能泄露的log,使用工具Ideafriend_LogTool_1.jar

 

 

 

 

3、在生成的mian_log_search.txt中查找Ideafriend可能的泄露处。使用工具Ideafriend_logTool_2.jar

 

 

注:在文件夹MainLog中,查看文件名格式为:Ideafriend_xxx.txt的说明为Ideafriend可能泄露的代码。删除所有文件名含有dele_xxx.txt的文件。

 

4、  查找出重复的文件,使用工具NoClone.exe

 

 

在重复的列表中标记复制出,重复中一项(如图所示522个文件中有4个重复的,因此只要复制出4个就可以),在非重复中的所有文件(如图所示为3个)

 

5、  合并我们查找出来的文件,使用工具庖丁解牛.exe

 

 

如图所示,添加要合并的文件,保存文件为TXT。

 

S920_main_log.txt 就是我们需要的文件,log整理完成。

详情:http://wenku.baidu.com/browse/downloadrec?doc_id=18d475440066f5335a812172&

   http://wenku.baidu.com/link?url=u7K2PlMUYvQ6twbOOFryDBq5gwWSm6iSHgq3NDfVIcboCJUiQpkK4TAA53glKnTEdr8x2XDf4C2OiMLGNn2NES3MXlhvXWQvOzrHWZlhwOy###




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试准备: Monkey压力测试时除了添加测试APP,还可另外添加2-3个第三方app进行对比测试。 1.在D盘新建一个txt文件,添加APP包名,命名为whitelist.txt 2.用cmd命令把whitelist.txt文件push到手机 adb push d:\whitelist.txt /data/local/tmp/ 3.压力测试指令monkey -p 包名 [参数] -v (-v -v) 执行次数 >导出log文件 l 对白名单包进行测试 l monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 1> /mnt/sdcard/monkey_test.txt 2>&1 & 黑名单:不测试的应用 白名单:只测试这部分应用 注意:不能同时设置黑名单和白名单 设置黑名单: --pkg-blacklist-file PACKAGE_BLACKLIST_FILE 设置白名单: --pkg-whitelist-file PACKAGE_WHITELIST_FILE l 对单独的APP进行测试 l monkey-p com.hst.che --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 >/mnt/sdcard/monkey1.txt 说明: --throttle(毫秒)事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件。 -s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 --ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。 --ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。 --ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。 --ignore-native-crashes 监视系统中本地代码发生的崩溃 --monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。 -v -v –v 提供最详细的设置信息 4.导出log到电脑:pull /mnt/sdcard/monkey.txt d:monkey.txt 分析log l 日志开头:显示本次测试seed值,执行次数,测试包, l 日志结尾: 如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。 (如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。) l 日志内容分析 一般测试结果分析-搜索关键字: 1.程序无响应,ANR问题:在日志中搜索“ANR” 2.崩溃问题:在日志中搜索“CRASH” 3.其他问题:在日志中搜索”Exception” 详细分析monkey日志 Switch--查看log中的Switch,主要是查看Monkey执行的是那一个Activity,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。 Sleeping--Sleeping for 500 milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。 重现问题 Monkey测试出现错误后,一般的查错步骤为以下几步: 1.找到是monkey里面的哪个地方出错 2.查看Monkey里面出错前的一些事件动作,并手动执行该动作 3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值