美文网首页
老菜鸟带你皮一下:Monkey测试入门!

老菜鸟带你皮一下:Monkey测试入门!

作者: 37f08a1d07fb | 来源:发表于2018-10-24 17:37 被阅读182次

Monkey,也就是猴子,hin皮,所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键来测试。猴子什么都不懂,只知道乱按。Monkey原理也是类似,通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序的测试。

我相信,大多数测试员都知道Monkey测试,甚至都用过,但是你可能不敢说自己对Monkey测试有多熟悉。看着好像很简单,但是我们如何快速的去熟悉Monkey测试呢?

一、Monkey测试的基本方法

今天,想简单地分享点Android的Monkey测试。亲测了一波,Monkey测试作为辅助测试,还是可以用用的,简单不费力。

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。只要安装了adb,就可以进行Monkey测试了。

在做Monkey测试前,需要先安装adb(adb的环境配置,网上有很多教程,此处不做详细描述)。然后手机连接上电脑,打开菜单,输入“cmd”打开,输入命令行“adb devices”来确定设备是否连接成功。若连接成功,会显示设备序列号,参考下图。

还有,测试人员需要知道测试app的包名。可以通过使用“uiautomatorviewer.bat”工具(后期文章中描述)来获取包名,也可以直接询问提供app的开发人员,或者直接使用adb命令获取包名。

简单地介绍一种:通过adb命令获取包名。首先要先打开手机中需要获取包名的app。然后分别输入命令即可。如下图,该app的包名是“com.screeclibinvoke”。

1、adb shell

2、dumpsys activity | grepmFocusedActivity

然后输入一句简单的Monkey命令,即可开始测试。

adb shell monkey -p com.screeclibinvoke 1000 (指定包名是“com.screeclibinvoke”的应用,随机执行1000个模拟事件)。

二、Monkey的常用命令

下面列出了Monkey可以使用的参数。

基本参数

--help打印帮助文档

-v命令行中的每一个-v将增加反馈信息的级别。Level 0(也是默认值)除启动提示、测试完成和最终结果之外,其他的信息很少。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity,例子adb shell -v -v 500

-s伪随机生成器的种子。如果seed值一样,那么产生的monkey事件,序列也是一样的

--throttle <毫秒>在事件之间加入固定时间延迟,单位毫秒。如果不加,monkey会尽可能快地产生事件

--pct-touch调整触摸事件的百分比(触摸就是一个点击事件)

--pct-motion调整动作事件的百分比,(动作事件指一个down事件,一系列随机事件,然后一个up事件)

--pct-trackball调整轨迹事件的百分比,(轨迹事件由一个或多个移动组成,有时伴随点击事件)

--pct-nav调整基本导航事件的百分比,(导航事件就是方向键,上下左右)

--pct-majornav调整主要导航事件的百分比(这些导航事件通常引发图形界面中的动作,如5-way键盘的中间按键,回退按键,菜单按键)

--pct-syskeys调整系统按键事件的百分比(这些事件由系统保留,如Home、Back、Start、Call、End Call及音量控制键)

--pct-appswitch调整启动activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖保重全部Activity的一种方法。

--pct-anyevent调整其他类型事件的百分比。包含了所有其他类型的事件,如按键、其他不常使用的设备按键、等。

操作约束

-p如果使用该参数指定了一个或几个包,monkey将只允许启动这些包中的activity。如果你的程序,需要访问别的activity(如联系人界面),那必须将联系人的包也指定一下,否则无法访问。如果没有指定包名,monkey将允许启动安装在手机上的所有包。如果要指定多个包,需要多个-p选项,每个-p指定一个包。

-c如果使用此参数指定了一个或多个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity,如果不指定任何类别,Monkey将选择下列类别中列出的Activity:

Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要多个-c选项。

调试选项

--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,直到有调试器和它相连。

三、Monkey的实例

我使用如下命令做一波Monkey测试,最终在电脑D盘生成a.log日志文件。

adb shell monkey -p com.screeclibinvoke --throttle300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions--ignore-native-crashes --monitor-native-crashes -v -v -v 10000>D:\a.log

在Monkey测试过程中可能会出现程序崩溃(CRASH)和程序无响应的情况(ANR)。CRASH即崩溃信息,程序在运行中非正常退出。设置忽略crashes等情况,当运行如上命令之后,在生成的日志中搜索关键字“CRASH”或“NAR”,可直接根据log日志定位bug并修复,也可根据seed值来完成bug的复现。

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ                   群:                  755431660

相关文章

  • 老菜鸟带你皮一下:Monkey测试入门!

    Monkey,也就是猴子,hin皮,所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键来测试。猴子什么都...

  • Monkey测试入门

    一、什么是Monkey测试? Monkey测试也成为压力测试,是Android自动化测试的一种手段,当Monkey...

  • 老司机带你玩转APP的Monkey测试

    1,解压ADB压缩包,在cmd窗口下,启动adb服务: 2,使用USB将手机和电脑连接,并将手机设置为开发者模式,...

  • Monkey命令

    Monkey命令 一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段...

  • Android稳定性之Monkey测试

    Monkey测试简述 monkey测试顾名思义猴子测试,猴子什么都不懂,只知道在键盘上乱敲。 monkey测试原理...

  • Android Monkey测试及源码分析

    一、Monkey测试简介 monkey测试是Android压力测试的一种手段,通过monkey程序随机模拟用户触摸...

  • monkey测试命令

    下面介绍一种Monkey测试方法:单一模块Monkey测试 以下这条Monkey指令为例: monkey -s 1...

  • App Monkey压力测试(二)

    App Monkey压力测试(一) Monkey测试的一个实例 通过这个实例,我们能理解Monkey测试的步骤以及...

  • Android Monkey 压力测试 介绍

    Android Monkey 压力测试 介绍 什么是Monkey Monkey测试,就像一只猴子,在电脑面前,乱敲...

  • 项目-monkey测试

    Monkey工具Android自动化测试monkey的使用 把版本切换到monkey测试的版本git reset ...

网友评论

      本文标题:老菜鸟带你皮一下:Monkey测试入门!

      本文链接:https://www.haomeiwen.com/subject/ccmxtqtx.html