100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 自动化测试—Monkey(压力测试)(不需要代码能力)

自动化测试—Monkey(压力测试)(不需要代码能力)

时间:2020-02-13 13:06:57

相关推荐

自动化测试—Monkey(压力测试)(不需要代码能力)

一、前言

所谓的自动化测试是针对人工测试的另一种测试方式,任何测试类型比如:系统测试、专项测试(性能测试、安全测试、稳定性测试、兼容性测试等)都可以采用自动化的方式进行测试。自动化测试依赖测试工具,区别是针对不同的测试类型选择不同的测试工具,比如:Monkey、Postman、Jmeter、Appium、Selenium等。

压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使刚环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。

软件系统的负载压力是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等。其中并发用户数是负载压力的重要指标。

负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。其中还有一种特定类型的负载测试,它是通过逐步增加软件系统的负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统提供的最大服务级别。

二、Monkey

1、Monkey的概念:

“猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的、乱点乱按的。

这种测试方式在产品周期中的早期阶段会找到很多很好的bug,为用户节省不少的时间。

2、Monkeytest的介绍

monkeytest也叫做搞怪测试,就是用一些稀奇古怪的操作方式去测试被测试系统,以测试系统的稳定性。一般是指用毫无规律的指令或操作测试被测系统,观察系统的稳定性和容错性能。

它是Android系统自带一个命令行工具,每台android手机里都有Monkey工具,但是我们是看不到的,因为Monkey不是一个可视化的工具。例如手机里的微信,这是一个可视化的工具,能打开有图形化界面,但是Monkey没有,Monkey可以在模拟器或者真实设备中运行。monkey向系统发送伪随机的用户事件流,对正在开发的应用程序进行压力测试。

当Monkey程序在模拟器或设备运行的时候,可以用Monkey去随机重复的模拟用户操作,如:按键输入,触摸屏输入,手势输入等,产生随机脉冲,负荷测试开发的程序,验证设备多长时间会出异常。

注意:不能使用monkey来指定做一种测试,并重复做很多次。因为monkey产生的是伪随机的事件流,但可以通过添加命令选项将操作限制在一定的范围内。

3、 手机里如何与Monkey进行通讯?

借助ADB才能与Monkey进行通讯。ADB:Android Debug Bridge,安卓调试桥。

4、monkey包括很多选项,大致四大类:

1).基本配置选项,如设置尝试的事件数量。

2).运行约束选项,如设置只对单独的一个包进行测试。

3).事件类型和频率。

4).调试选项

三、搭建环境

在开始Monkey测试之前,我们需要搭建环境。

1、安装Java JDK(之前进行Jmeter测试的时候已经安装过Java JDK)

2、安装android SDK

1)下载android SDK

浏览器打开www.android-,,点击下载,然后选择下载windows版本的SDK。

这里建议下载.exe格式。由于需要访问google的网站,访问不了的朋友,可以点击这里。

2)安装

下载下来的exe文件,直接双击开始安装,安装过程会检测你是否安装过JAVA JDK。直接默认安装到C盘就好。我这安装位置是:

C:\Program Files(x86)\Android\android-sdk

安装完了就是以上图,这里我们点击一下SDK Manager.exe

如果网速好的,可以点击全部,然后进行安装。我这里点击默认安装12个包。为什么要安装这个了,因为安装之后,会产生一个platform-tools的文件夹,里面就有我们需要的adb.exe,现实安装过程,很容易失败,连接google网络问题经常遇到。

3)设置环境变量

新建一个ANDROID_HOME的环境变量

找到系统变量中的path,点击编辑,添加两个路径%ANDROID_HOME%\platform-tools和%ANDROID_HOME%\tools

4)测试ADB是否安装成功

安卓手机用usb数据线连接到电脑,需要打开开发者模式,允许USB调试。

电脑打开cmd,输入adb,如果能看到下面这张图,说明安装和配置环境变量没有问题。关于android sdk的安装就介绍到这里。(我本来想试试android studio官网的sdk tool包,结果下载下来就有tools这个文件夹,也没有sdk manager.exe,就果断放弃,还是用上面的方法,下载旧版本的sdk tools的安装exe文件。)

四、Monkey前的准备命令

1.windows+r 输入cmd进入dos命令行;

2.输入adb devices 下面出现类似下图的组合你就成功了;

3.再输入 adb shell pm list packages查看你的手机所有的安装包;输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称。

五、使用Monkey进行压力测试——简单实例

1、首先用一个最简单的mokey去试着找哪个是你想要的安装包名称:

/ / -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)

/ /-v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

/ /数字100:表示测试事件数为100

指定一个包 adb shellmonkey-pcom.tencent.news-v -v -v100(此时指定软件会被打开并开始乱点乱按)

指定多个包 adb shellmonkey -p com.tencent.news-p com.pdfreader -p com.widgets-v 1000

不指定包adb shellmonkey -v 1000

命令错误时失败截图:

命令正确时截图:

2、Event percentages(事件百分比):

0:触摸事件百分比,参数--pct-touch

1:滑动事件百分比,参数--pct-motion

2:缩放事件百分比,参数--pct-pinchzoom

3:轨迹球事件百分比,参数--pct-trackball

4:屏幕旋转事件百分比,参数--pct-rotation

5:暂时不知道这个是什么

6:基本导航事件百分比,参数--pct-nav

7:主要导航事件百分比,参数--pct-majornav

8:系统事件百分比,参数--pct-syskeys

9:Activity启动事件百分比,参数--pct-appswitch

10:键盘翻转事件百分比,参数--pct-flip

11:其他事件百分比,参数--pct-anyevent

3、尽管monkey产生是伪随机事件流,但是我们希望我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。

eg:(1).对文本框操作,需要更多的按键操作。

(2).玩游戏,需要更多的点击和滑动操作。

4、各种指令:

(1)、--throttle设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可能快地生成和发送消息。单位:毫秒

eg:adb shell monkey--throttle3000-p com.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。

(2)、--pct-touch(空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。

eg:adb shell monkey--throttle3000--pct-touch50-pcom.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定触屏的事件占比为50%。

(3)、--pct-motion设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

eg:adb shell monkey--throttle3000--pct-motion50-pcom.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定滑动的事件占比为50%。

(4)、--pct-trackball设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件

eg:adb shell monkey--throttle3000--pct-trackball50-pcom.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定轨迹球的事件占比为50%。

(5)、--pct-nav设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。

eg:adb shell monkey --throttle3000 --pct-nav40-pcom.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定基本导航事件的占比为40%。

(6)、--pct-majornav设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、

eg:adb shell monkey--throttle3000--pct-majornav40-pcom.tencent.news100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定主要导航事件的占比为40%。

(7)、--hprof

指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。通常会在data/misc目录下生成一个5MB左右大小的文件

(8)、--ignore-crashes

通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

(9)、--ignore-timeouts

通常情况下,当应用程序发生任何超时错误(applicationnotresponding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

(10)、--ignore-security-exceptions通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

eg:adb shell monkey--throttle3000 --pct-trackball50-pcom.tencent.news--ignore-security-exceptions100

————————————————————————————————————————————完结!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。