monkey测试

目录

一、什么是monkey测试?

二、monkey程序介绍

三、操作步骤

monkey测试前的准备操作:

四、monkey命令说明

 五、monkey日志分析报告

1、monkey出现错误后,一般的分析步骤:

2、在日志中搜索关键词&分析

① ANR问题

② 分析log中的具体信息

③ 内存泄漏


一、什么是monkey测试?

二、monkey程序介绍

1、monkey测试是 Android程序 自带的,由 Java语言 写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar

2、monkey程序通过adb来运行

三、操作步骤

1、安装并配置adb环境,adb 1.0.32 下载后解压保存在users/wx目录下

2、查看设备是否连接 :adb devices

3、安装包:adb install *.apk(把文件拖过来)

4、执行monkey测试

monkey测试前的准备操作:

  • 确保屏幕处于解锁状态
  • 设置屏幕超时时间为最大时间(防止测试过程中手机锁屏,影响monkey测试)
  • 打开usb调试,确保adb可以连接
  • 抓取adb log(若出现anr,需要将/data/anr下的anr log拿出来,需要手机有root权限)

四、monkey命令说明

adb shell monkey 行为参数 >保存路径

示例:

adb shell monkey -p com.xxx.myapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > d:\mylog.log

 五、monkey日志分析报告

1、monkey出现错误后,一般的分析步骤:

  • 找到出现错误的位置
  • 找到出现错误前面两个Switch之间的activity
  • 手动执行操作,复现问题
  • 若上述步骤不能找出产生的错误,输入相同的seed值,重复安装之前的命令跑monkey

2、在日志中搜索关键词&分析

ANR有无应用无响应事件
crash有无奔溃事件
exception

有无其他异常事件

若出现空指针nullpointerexception,需格外重视

GC内存泄漏问题

① ANR问题

一般是主线程的响应超过5秒或者broadcastReceiver没有在10秒内做出响应。是一个比较严重的缺陷,把耗时的操作另起线程来处理即可

② 分析log中的具体信息

如:

log中的第一个Switch,主要是查看monkey执行的是哪一个activity

(上面的log,执行的是com.tencent.smtt.SplashActivity)

在下一个Switch之间,若出现奔溃或其他异常,可以在该activity中查找问题所在

③ 内存泄漏

内存泄漏一般会弹出out of memory对话框,如果没弹出,可以通过logcat文件GC出信息

(GC:Java的垃圾回收机制)

GC信息问题
GC_FOR_ALLOC分配内存时内存不足引起
GC_EXPLICITGC是被显性请求触发的
GC_CONCCURRENT

GC在内存使用率达一定警戒值时,自动触发

GC_BEFORE_OOM虚拟机抛出内存不够异常oom之前,执行最后一次回收内存垃圾

发现内存泄漏,需要分析内存报告(利用hprof参数的内存快照生成内存报告)

        执行相同的monkey,只多加一个参数-hprof

        指定了-hprof选项,monkey会在发送时间前后生成app内存快照文件,生成的hprof的文件一般会在手机的/data/misc目录下(/data/misc需要root权限,可以在手机中安装个RE或通过手机助手查看)

文件转换:

  • 配置monkey测试时的sdk-tools下查看是否hprof-conv命令
  • 在命令行输入hprof-conv -help得知文件转化用法,直接转化(由.hprof转化成.conv格式
  • 转化后的文件用eclipse的Memory Analyzer tool(MAT)查看(此插件可以下载),可以点击 Reports->Leak Suspects链接来生成报告。

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值