51Testing软件测试论坛
标题: Android Monkey测试 [打印本页]
作者: 初心若雪_001 时间: 2019-2-18 14:31
标题: Android Monkey测试
Android中的monkey是对app做界面压力测试的一款工具,它可以向模拟器或者真机发送一系列随机的用户操作事件、或者系统事件。
概述Monkey是android sdk自带的一款命令行工具,适用于任何android模拟器或者真机。它通过向手机发送一系列的随机事件,来测试手机app的稳定性。
Monkey命令包含一些参数,大体可以分为四类:
- 基本参数,如指定随机事件的个数
- 操作约束,如限制随机操作在指定的包内
- 事件类型和频率
- 调试选项
Monkey运行过程中,向android系统发送随机事件。并且,monkey会监视android系统的运行状态,保证下面的三点:
- 如果我们限制了monkey只在一个或几个包中运行。那么monkey在运行过程中会监视产生的随机事件,如果某一事件会跳到其他包中,monkey就会丢弃该事件,确保monkey只在指定的包中运行。
- 如果我们的程序出现crash或者有未被捕获的异常,monkey就会停止运行,并报错。
- 如果我们的程序出现未响应,monkey会停止运行,并报错。
Monkey的基本用法我们可以在直接在命令行或者脚本中运行monkey,前提是android sdk环境已经ok。
基本语法如下:
- $ adb shell monkey [options] <event-count>
复制代码
如果没有其他参数限制,monkey默认以quiet模式运行,它会随机向手机中的包发送请求。一般请求,我们都需要指定包名,下面的命令限制了包名,且指定产生500个随机事件:
- $ adb shell monkey -p com.yeetrack.android.client -v 500
复制代码
Monkey的参数下面列出了Monkey可以使用的参数。
基本参数- --help打印帮助文档
- -v命令行中的每一个-v将增加反馈信息的级别。Level 0(也是默认值)除启动提示、测试完成和最终结果之外,其他的信息很少。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity,例子adb shell -v -v 500
- -s <seed>伪随机生成器的种子。如果seed值一样,那么产生的monkey事件,序列也是一样的
- --throttle <毫秒>在事件之间加入固定时间延迟,单位毫秒。如果不加,monkey会尽可能快地产生事件
- --pct-touch <percent>调整触摸事件的百分比(触摸就是一个点击事件)
- --pct-motion <percent>调整动作事件的百分比,(动作事件指一个down事件,一系列随机事件,然后一个up事件)
- --pct-trackball <percent>调整轨迹事件的百分比,(轨迹事件由一个或多个移动组成,有时伴随点击事件)
- --pct-nav <percent>调整基本导航事件的百分比,(导航事件就是方向键,上下左右)
- --pct-majornav <percent>调整主要导航事件的百分比(这些导航事件通常引发图形界面中的动作,如5-way键盘的中间按键,回退按键,菜单按键)
- --pct-syskeys <percent>调整系统按键事件的百分比(这些事件由系统保留,如Home、Back、Start、Call、End Call及音量控制键)
- --pct-appswitch <percent>调整启动activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖保重全部Activity的一种方法。
- --pct-anyevent <percent>调整其他类型事件的百分比。包含了所有其他类型的事件,如按键、其他不常使用的设备按键、等。
操作约束
调试选项- --dbg-no-event设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不再产生事件。为了得到最佳结果,把它与-v,一个或几个包约束,以及一个保持Monkey运行30秒或更长事件的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
- --hprof设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(5M),所以小心使用。
- --ignore-crashes通常,当被测app崩溃或者发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey会继续向系统发送事件,直到计数完毕。
- --ignore-timeouts通常,当被测程序出现未响应时,Monkey会停止运行。如果设置此选项,Monkey会继续运行,直到结束。
- --ignore-security-excuptions通常,当被测程序发生可允许错误(如启动一个需要授权的Activity)时,Monkey将停止运行。如果设置此选项,Monkey将继续运行,直到结束。
- --kill-process-after-error通常,当Monkey由于一个错误而停止运行时,出错的应用程序将继续运行。如果设置此选项,将会通知系统停止发送错误的进程。注意:程序正常结束,该程序并没有被停止。设备只是在结束事件后,简单保持在最后的状态。
- --monitor-native-chrashes监视并报告Android系统中本地代码的崩溃事件。如果设置了–kill-process-after-error,系统将停止运行。
- --wait-dbg停止执行中的Monkey,直到有调试器和它相连。
最后一个简单的例子:
每0.5秒发送一个请求,包名com.yeetrack.android.app,总共发送请求2000个。
- adb shell monkey -v 2000 --throttle 500 -p com.yeetrack.android.app
复制代码
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |