Android中monkey测试
来源:互联网 发布:淘宝店铺名搜索不到 编辑:程序博客网 时间:2024/05/18 23:16
Monkey 就是SDK中附带的一个工具。是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
#2 Monkey 测试的目的?
:该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。
#3 Monkey 测试的特点?
A、测试的对象仅为应用程序包,有一定的局限性。
B、 Monky测试使用的事件流数据流是随机的,不能进行自定义。
C、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
#4 Monkey 命令详解
1. 常见的adb命令
$ adb shell monkey –p(包) your.package.name –v(频率) 500
2.标准的monkey 命令
[adb shell] monkey [options] <eventcount> , 例如:
adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。
上面只是一个简单的例子,实际情况中通常会有很多的options 选项
options 四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项
1)常用选项
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。
2)事件选项
--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100
--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:
--pct-motion <percent> (滑动事件)、 --pct-trackball <percent> (轨迹球事件) 、 --pct-nav <percent> (导航事件 up/down/left/right)、 --pct-majornav <percent> (主要导航事件 back key 、 menu key)、 --pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch <percent> (activity之间的切换)、 --pct-anyevent <percent>(任意事件)
3)约束选项
-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;
4)调试选项
--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。
3. 一个简单的monkey命令:
但是,工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下
4、monkey作用的包:com.ckt.android.junit
产生时间序列的种子值:500
忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃 、 详细信息级别为2 , 产生 10000个事件 。
5、Monkey测试的停止条件
Monkey Test执行过程中在下列三种情况下会自动停止:
A、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
B、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
C、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
使用Monkey流程
步骤详解
1、ADB连接Android测试设备。
如果你用的是模拟器,那么启动后通常是已经连在ADB上了。对于真机来说两种方式都可以:
方式一:使用USB把Android设备接到PC上,然后装上驱动(不好找驱动的话就用豌豆荚吧)。
方式二:首先得确保你的Android已经成功root了,那么可以使用wifi无线连接。①下载一个wifi adb应用装在你的android设备上;②在android上打开wifi adb;③在pc上的命令行中输入wifi adb中显示的那部分内容:adb connect 192.168.x.x,命令行中显示connected 192.168.x.x那么说明连接好了。
我比较喜欢方式二,这样可以不用去下载驱动(主要是驱动很多都不稳定),而且不伤害电池。长时间插在USB上对电池始终是不好的。只不过这种方式设备一旦休眠那么就可能需要重连。
2、确定你要测试的应用的PackageName。
先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不然不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root)。
①在android设备上点击一下你要测试的设备,然后就不用操作设备了。
②在PC上的命令行输入:adb logcat>D:/log.txt *:I
在这里的D:/log.txt你可以改成其他的路径,但是一定要先确保路径下没有这个文件,不然的话你以前的文件就被改掉了,一定要小心。
③按下Ctrl+c先停掉(为了避免过多的新信息)。打开刚刚的那个文件D:/log.txt。从文件最下面开始找下面格式的信息
I/ActivityManager( 数字): Displayed 包名/类名: +数字ms
例如我的信息如下:
I/ActivityManager( 272): Displayed com.vane/.act.ActLauncher: +315ms
不过你可能会发现有很多这种格式的信息,到底哪个才是你需要的呢,如果你严格按照刚刚的步骤做的话,那么很可能是最下面那条信息,即使不是那么也肯定是最下面几条信息中的某一条,这需要你根据应用进行辨别。
④记下你刚刚得到的包名,例子中的包名为“com.vane”。马上就会用。
3、使用Monkey发一条测试命令。
直接在pc上的命令行输入:adb shell monkey -p com.vane -v 50
备注:上面命令中的com.vane就是之前获得的包名;命令中的参数你可以自己根据需要参考上面的参数文档进行修改。
4、观察android设备,直到Monkey停止。
5、如果应用崩溃的话就好分析一下Monkey中的信息。
- Android中monkey测试
- Android中Monkey测试的使用
- Android中如何做Monkey测试
- android studio 中使用monkey测试
- Android Monkey 测试
- Android-Monkey测试(转载)
- Android的monkey测试
- Android 压力测试----- Monkey
- android下monkey测试
- android Monkey test测试
- android 自动化测试 monkey
- Android之monkey测试!
- Android的monkey测试
- Android的monkey测试
- Android测试(二) Monkey
- android 之monkey 测试
- android monkey测试
- Android的monkey测试
- 浏览器缓存机制
- 可以随手指滑动切换tab的viewpager
- Java回调的简单理解
- tomcat部署web工程
- Swift内存管理(ARC)之循环引用
- Android中monkey测试
- javascript(JS) 中的alert出来的消息怎么进行国际化
- LeetCode Sudoku Solver
- 并发过高导致库存买超情况
- linux下性能监控shell脚本实现系列一(服务器整体性能监控)
- 微信平台开发获取微信用户的OPENID
- SpringMVC+Spring3.0+Mybatise+Extjs4.0+Json 包冲突
- C#中null和""的区别
- SVN搭建方法