Monkey测试方法Word文件下载.docx
《Monkey测试方法Word文件下载.docx》由会员分享,可在线阅读,更多相关《Monkey测试方法Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
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.确认设备连接正确
3.App性能测试
启动控制台
启动CMD控制台。
启动adb
启动adb工具
在CMD控制台中,进入adb程序所在路径,使用:
adbversion命令可以查看当前adb版本。
查看版本
在adb目录下,使用:
adbversion命令查看adb当前版本,如下图;
查看设备列表
adbdevices命令查看设备列表
启动adbshell
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测试
明确要测试的包名后,在进入root权限后使用:
#monkey-pcom.android.calculator2-v500;
将其中[com.android.calculator2]替换为要测试的目标即可。
*如果要将测试Log导出到计算机,需要在adb目录下直接输入命令开始测试,在原始测试命令后追加用于存放测试Log的目录及文件名称,例:
如“>
e:
\log.txt”;
Adbshellmonkey–pcom.yuxuan.dancing–v200>
\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:
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。
操作序列虽然是随机生成的,但是只要我们指定了相同的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-appswitch701000
--pct-anyevent{+百分比};
调整其它类型事件的百分比。
它包罗了所有其它类型的事件,如:
按键、其它不常用的设备按钮、等等;
adbshellmonkey-pcom.htc.Weather
--pct-anyevent1001000*指定多个类型事件的百分比;
adbshellmonkey-pcom.htc.Weather--pct-anyevent50--pct-appswitch501000
*注意:
各事件类型的百分比总数不能超过100%;
4.Monkey测试结果分析
测试Log导出
需要将测试Log导出到计算机时,需要在在adb目录下,进行monkey测试,在adb目录下输入测试命令,在原始测试命令后追加用于存放测试Log的目录及文件名称,例如:
“>
测试结果分析
初步分析
Monkey测试出现错误后,一般的差错步骤为以下几步:
1、找到是monkey里面的哪个地方出错
2、查看Monkey里面出错前的一些事件动作,并手动执行该动作
3、若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
一般的测试结果分析:
1、ANR问题:
在日志中搜索“ANR”
2、奔溃问题:
搜索“Crash”
2、异常问题:
在日志中搜索“Exception”
详细分析
将执行Monkey生成的log,从手机中导出并打开查看该log;
在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。
首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。
然后我们要分析log中的具体信息,方法如下:
查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
:
Switch:
#Intent;
action=android.intent.action.MAIN;
category=android.intent.category.LAUNCHER;
launchFlags=0x10000000;
component=com.tencent.smtt/.SplashActivity;
end
//AllowingstartofIntent{act=android.intent.action.MAINcat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity}inpackagecom.tencent.smtt
在下面的log中,SendingPointerACTION_DOWN和SendingPointerACTION_UP代表当前执行了一个单击的操作;
Sleepingfor500milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。
SendKey(ACTION_DOWN)//KEYCODE_DPAD_DOWN代表当前执行了一个点击下导航键的操作;
SendingPointerACTION_MOVE代表当前执行了一个滑动界面的操作。
SendingPointerACTION_DOWNx=47.0y=438.0
SendingPointerACTION_UPx=47.0y=438.0
Sleepingfor500milliseconds
SendKey(ACTION_DOWN):
20//KEYCODE_DPAD_DOWN
SendKey(ACTION_UP):
SendingPointerACTION_MOVEx=-2.0y=3.0
SendingPointerACTION_MOVEx=4.0y=-3.0
SendingPointerACTION_MOVEx=-5.0y=-3.0
SendingPointerACTION_MOVEx=3.0y=4.0
SendingPointerACTION_MOVEx=-4.0y=1.0
SendingPointerACTION_MOVEx=-1.0y=-1.0
SendingPointerACTION_MOVEx=-2.0y=-4.0
如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;
//Monkeyfinished代表执行完成。
Monkey执行中断,在log的最后也能查看到当前已执行的次数。
Monkey执行完成的log具体如下:
Eventsinjected:
6000
Dropped:
keys=0pointers=9trackballs=0flips=0
##Networkstats:
elapsedtime=808384ms(0msmobile,808384mswifi,0msnotconnected)
//Monkeyfinished
Log时间标识
Monkey测试Log中标识操作的具体时间使用[calendar_time:
]标识
Calendar_time
5.Android设备性能监视
环境搭建
测试设备安装腾讯GT工具,直接安装GT_2.2.6.5.apk。
安装GT(GT.apk)后,不需要连接PC和在被测应用中插入代码,即可通过GT快速方便地进行基本性能测试。
GT支持获取手机整机的:
CPU,内存,帧率(FPS,Android4.x版本需在开发者选项中勾选“禁用硬件叠加”后,才能得到准确的帧率数值,见注1),流量(WIFI/3G/2G),信号强度,电流电量(有限机型支持);
单个应用(支持多进程的应用)的CPU,内存(PSS/PrivateDirty),流量信息。
腾讯GT工具配置
选择测试目标App
按照下图操作,选择要测试的目标App
设置关注的性能参数
PSS:
系统内存
CPU:
设备CPU
NET:
使用流量
启动应用程序,设置监视的性能指标
点击[启动]按钮启动App,然后返回GT界面,设置要监视的性能指标,
进入【参数】界面及【编辑】界面,选择要监视的性能指标;
设置悬浮窗实时显示指标
在【参数】_【编辑】界面,设置悬浮窗口中实时显示的性能指标,此项设置非必须。
设置保存历史记录的性能指标
在【参数】界面,设置需要历史数据的性能指标;
测试
开始/停止监控性能指标并收集数据
参数、指标设置完成后,点击
,开始收集数据。
测试完成后点击
,停止收集数据。
查看测试数据及保存
腾讯GT能够查看实时测试数据;
测试完成后,保存测试数据;
测试数据导出
与AndroidMonkey测试同步
启动GT性能数据收集后,启动AndroidMonkey测试,同步进行。