Android Monkey 压力测试 介绍
来源:互联网 发布:苹果最新软件版本 编辑:程序博客网 时间:2024/06/05 13:30
转载:https://www.cnblogs.com/TankXiao/p/4815134.html
Android Monkey 压力测试 介绍
Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试
环境搭建
安装Android SDK 并配置环境变量
http://pan.baidu.com/s/1jIlifbS
什么是Monkey
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲
通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常
Monkey 用来做什么
Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.
Monkey程序介绍
(1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;
(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
(3)Monkey 命令启动方式:
a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试
b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试
c ) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器
Monkey 架构
Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)
Monkey弱点
Monkey虽然可以根据一个指定的命令脚本发送按键消息,但其丌支持条件判断,也丌支持读取待测界 面的信息来执行验证操作。
Monkey 参数大全
Monkey 命令 基本参数介绍
-p <允许的包名列表>
用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包, monkey将允许系统启动设备中的所有app。
指定一个包:adb shell monkey -p com.shjt.map 100
指定多个包:adb shell monkey -p fishjoy.control.menu –p com.shjt.map 100
-v
用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示:
Level 0 : adb shell monkey -p com.shjt.map -v 100 // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
Level 1 : adb shell monkey -p com.shjt.map -v -v 100 // 提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2 : adb shell monkey -p com.shjt.map -v -v -v 100 // 最详细的日志,包括了测试中选中/未选中的Activity信息
-s(随机数种子)
用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 示例:
monkey测试1:adb shell monkey -p com.shjt.map –s 10 100
monkey测试2:adb shell monkey -p com.shjt.map –s 10 100
--throttle <毫秒>
用亍指定用户操作(即事件)间的时延,单位是毫秒;如果丌指定这个参数,monkey会尽可能快的 生成和发送消息。 示
例:adb shell monkey -p com.shjt.map --throttle 3000 100
Monkey 实例
adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:\monkey.txt
Monkey 查看包名
手机中安装APK包名查看器
源码下的AndroidManifest.xml文件查看
aapt命令查看
Monkey 日志分析
正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成\
异常情况
Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug
Monkey 执行中断, 在log最后也能看到当前执行次数
必须重视Crash
虽然Monkey测试有部分缺陷,我们无法准确地得知重现步骤, Monkey测试所出现的NullPointException, 都是可以在用户使用时出现的, 何时出现只是时间问题
理论上来说, Monkey所有的Crash 都需要在发布前修复掉。
C:\Documents and Settings\9158.feng>adb shell monkey -p com.a.a -s 500 --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 50000 >C:\log.txt 指令的含义:测试的应用程序为com.a.a,事件间的延时为500毫秒,三个 -v 表示输出的MonkeyLog的级别为最高,即输出最详尽的Monkey Log,测试的事件次数为50000次 ,Log保存在C盘的log.txt 代码解析如下(类似)
例如:adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt 说明:monkey作用的包:com.xy.android.junit 产生时间序列的种子值:500 忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃 、
详细信息级别为2 , 产生 10000个事件 所产生的日志保存在:E:\monkey_log\java_monkey_log.txt
注:测试产生了日志,最重要的是要学会分析日志 在log中搜索4种关键字加以分析: 1、crash 闪退 2、exception 异常 3、force closed 强制退出 4、anr(application no response) 程序无响应
用户还可以通过monkey\sdk\tools中的monitor.bat工具进行查看包名哦!
- Android Monkey 压力测试 介绍
- Android Monkey 压力测试 介绍
- Android Monkey 压力测试 介绍
- Android Monkey 压力测试 介绍
- Android Monkey 压力测试 介绍
- (转)Android Monkey 压力测试 介绍
- Android 压力测试----- Monkey
- android压力测试,monkey
- android monkey 压力测试
- Android 压力测试 Monkey
- Android 压力测试Monkey
- android monkey 压力测试
- Android压力测试Monkey
- Android Monkey 压力测试
- Monkey-Android压力测试
- android monkey压力测试
- Android Monkey压力测试
- Android压力测试-Monkey
- Java-SpringDataRedis使用入门
- 关于一般处理程序接口的调用的方法
- PLSQL----异常处理
- 1036 商务旅行(lca)
- 一个springmvc的@RequestParam异常解决
- Android Monkey 压力测试 介绍
- IOS 使用ZipArchive解压文件
- 支付宝”电脑网站支付“接口对接
- android 内存泄露的8个原因
- UE4C++ 设置UMG控件的Slot
- Shell中的if结合正则表达式使用
- 内存泄漏调试(2)——VLD
- OC与JS之间的交互
- 【学习笔记】【python+opencv】疑惑记录