Monkey测试方法.docx
《Monkey测试方法.docx》由会员分享,可在线阅读,更多相关《Monkey测试方法.docx(18页珍藏版)》请在冰豆网上搜索。
Monkey测试方法
环境搭建
软件安装步骤
JavaJdk安装
1.安装JavaJDK
2.系统变量配置
在电脑【属性】【高级系统设置】【环境变量】【系统变量】中设置;JAVA_HOME;PATH;CLASSPATH。
JAVA_HOME:
输入指明JDK安装路径,没有需新建;
PATH:
输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,没有PATH则新建,有则编辑,添加上述值;PATH使得系统可以在任何路径下识别java命令;
CLASSPATH:
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;没有此环境变量需新增,有则编辑,添加上述值;为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别
3.验证JavaJdk环境变量配置成功与否;“开始”->;“运行”,键入“cmd”;输入命令“java-version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;
AndroidSDK
1.下载最新的AndroidSDK;
2.解压AndroidSDK文件,里面有两个应用程序:
“SDKManager.exe”(负责下载或更新SDK包)和"AVDManager.exe"(负责创建管理虚拟机)。
我们先运行“SDKManager.exe”进行SDK下载。
3.运行后出现下面的界面,我们选择自己想安装的Android版本,我选择了最新版本,然后点击“InstallXpackages”安装。
4.在新出现的界面上,选择接受并遵守所有许可内容(AcceptAll),再点击“Install”。
*AndroidSDK管理器就开始下载并安装你所选的包了,等待下载完成。
连接真机调试
设备设置
1.测试真机需要进行root处理,获取root权限;使用360一键root工具;
2.设置手机,开发者模式,启动【开发者选项】中[开启开发者选项],启动[USB调试];
3.使用USB数据线连接测试机;
4.确认设备连接正确
App性能测试
启动控制台
启动CMD控制台。
启动adb
启动adb工具
在CMD控制台中,进入adb程序所在路径,使用:
adbversion命令可以查看当前adb版本。
查看版本
在adb目录下,使用:
adbversion命令查看adb当前版本,如下图;
查看设备列表
在adb目录下,使用:
adbdevices命令查看设备列表
启动adbshell
启动adbshell
在adb目录下,使用:
adbshell命令启动adbshell
unknownhostservice异常排除
如果在启动adbshell时,出现“failedtostartdaemon*
error:
unknownhostservice”错误,是由于测试PC的5037端口被占用了,在CMD控制台中“netstat-aon|findstr"5037"”查找占用5037端口的进程ID,关闭该进程;或者使用“tasklist/fi"pideq2244”命令关闭进程。
morethanonedevice/emulator异常排除
如果在启动adbshell时,出现“error:
morethanonedevice/emulator”错误,是由于连接了多个设备或者模拟器导致,进行测试时,需要指定设备,使用–s参数;
Adb–s022NQS145L001556shell
查看设备Data目录下的包名
在adbshell下使用:
su命令获取root权限,后再使用:
#lsdata/data命令,连接设备Data目录下的包名。
进行monkey测试
进行monkey测试
明确要测试的包名后,在进入root权限后使用:
#monkey-pcom.android.calculator2-v500;将其中[com.android.calculator2]替换为要测试的目标即可。
*如果要将测试Log导出到计算机,需要在adb目录下直接输入命令开始测试,在原始测试命令后追加用于存放测试Log的目录及文件名称,例:
如“>e:
\log.txt”;
Adbshellmonkey–pcom.yuxuan.dancing–v200>e:
\log.txt
测试结果Log会被存放在e:
\log.tx中
Adbshell参数设置
参数:
-p
参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。
指定包之后,Monkey将只允许系统启动指定的APP。
如果不指定包,Monkey将允许系统启动设备中的所有APP。
*指定一个包:
adbshellmonkey-pcom.htc.Weather100
说明:
com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。
*指定多个包:
adbshellmonkey-pcom.htc.Weather–pcom.htc.pdfreader-pcom.htc.photo.widgets100
*不指定包:
adbshellmonkey100
说明:
Monkey随机启动APP并发送100个随机事件。
*要查看设备中所有的包,在CMD窗口中执行以下命令:
>adbshell
#cddata/data
#ls
参数:
-v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:
1.日志级别Level0
示例adbshellmonkey-pcom.htc.Weather–v100
说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息;
2.日志级别Level1
示例adbshellmonkey-pcom.htc.Weather–v-v100
说明提供较为详细的日志,包括每个发送到Activity的事件信息;
3.日志级别Level2
示例adbshellmonkey-pcom.htc.Weather–v-v–v100
说明最详细的日志,包括了测试中选中/未选中的Activity信息;
参数:
-s
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
*示例:
Monkey测试1:
adbshellmonkey-pcom.htc.Weather–s10100
Monkey测试2:
adbshellmonkey-pcom.htc.Weather–s10100
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。
操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;
参数:
-throttle<毫秒>
用于指定用户操作(即事件)间的时延,单位是毫秒;
*示例:
adbshellmonkey-pcom.htc.Weather–throttle3000100
参数:
--ignore-crashes
用于指定当应用程序崩溃时(Force&Close错误),Monkey是否停止运行。
如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
*示例1:
adbshellmonkey-pcom.htc.Weather--ignore-crashes1000;
测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;
*示例2:
adbshellmonkey-pcom.htc.Weather1000;
测试过程中,如果Weather程序崩溃,Monkey将会停止运行。
参数:
--ignore-timeouts
用于指定当应用程序发生ANR(ApplicationNoResponding)错误时,Monkey是否停止运行。
如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。
参数:
--ignore-security-exceptions
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。
如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
参数:
--kill-process-after-error
用于指定当应用程序发生错误时,是否停止其运行。
如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:
应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。
参数:
--monitor-native-crashes
用于指定是否监视并报告应用程序发生崩溃的本地代码。
参数:
--pct-{+事件类别}{+事件类别百分比}
用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
参数:
使用说明:
示例:
--pct-touch{+百分比};
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置);
adbshellmonkey-pcom.htc.Weather--pct-touch101000
--pct-motion{+百分比};
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成);
adbshellmonkey-pcom.htc.Weather--pct-motion201000
--pct-trackball{+百分比};
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击);
adbshellmonkey-pcom.htc.Weather--pct-trackball301000
--pct-nav{+百分比};
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成);
adbshellmonkey-pcom.htc.Weather--pct-nav401000
--pct-majornav{+百分比};
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:
5-way键盘的中间按键、回退按键、菜单按键);
adbshellmonkey-pcom.htc.Weather--pct-majornav501000
--pct-syskeys{+百分比};
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、StartCall、EndCall及音量控制键);
adbshellmonkey-pcom.htc.Weather--pct-syskeys601000
--pct-appswitch{+百分比};
调整启动Activity的百分比。
在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法;
adbshellmonkey-pcom.htc.Weather--pct-appswitch70