Monkey测试方法_第1页
Monkey测试方法_第2页
Monkey测试方法_第3页
Monkey测试方法_第4页
Monkey测试方法_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 环境搭建1.1. 软件安装步骤1.1.1. java jdk安装1. 安装java jdk2. 系统变量配置在电脑【属性】【高级系统设置】【环境变量】【系统变量】中设置;java_home;path;classpath。java_home:输入指明jdk安装路径,没有需新建;path:输入%java_home%bin;%java_home%jrebin,没有path则新建,有则编辑,添加上述值;path使得系统可以在任何路径下识别java命令;classpath:%java_home%libdt.jar;%java_home%libtools.jar; 没有此环境变量需新增,有则编辑,添

2、加上述值;为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别3. 验证java jdk环境变量配置成功与否;“开始”;“运行”,键入“cmd”;输入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;1.1.2. android sdk1. 下载最新的android sdk;2. 解压android sdk文件,里面有两个应用程序: “sdk manager.exe”(负责下载或更新sdk包) 和 avd manager.exe(负责创建管理虚拟机)。我们先运行“sdk manager.ex

3、e”进行sdk下载。3. 运行后出现下面的界面,我们选择自己想安装的 android 版本,我选择了最新版本,然后点击“install x packages”安装。4. 在新出现的界面上,选择接受并遵守所有许可内容(accept all),再点击 “install”。* android sdk 管理器就开始下载并安装你所选的包了,等待下载完成。1.2. 连接真机调试1.2.1. 设备设置1. 测试真机需要进行root处理,获取root权限;使用360一键root工具;2. 设置手机,开发者模式,启动【开发者选项】中开启开发者选项,启动usb调试;3. 使用usb数据线连接测试机;4. 确认设备

4、连接正确2. app性能测试2.1. 启动控制台启动cmd控制台。2.2. 启动adb2.2.1. 启动adb工具在cmd控制台中,进入adb程序所在路径,使用:adb version命令可以查看当前adb版本。2.2.2. 查看版本在adb目录下,使用:adb version 命令查看adb当前版本,如下图;2.2.3. 查看设备列表在adb目录下,使用:adb devices 命令查看设备列表2.3. 启动adb shell2.3.1. 启动adb shell在adb目录下,使用:adb shell 命令启动adb shell2.3.2. unknown host service异常排除如

5、果在启动adb shell时,出现“failed to start daemon *error: unknown host service”错误,是由于测试pc的5037端口被占用了,在cmd控制台中“netstat -aon|findstr 5037”查找占用5037端口的进程id,关闭该进程;或者使用“tasklist /fi pid eq 2244”命令关闭进程。2.3.3. more than one device/emulator异常排除如果在启动adb shell时,出现“error: more than one device/emulator”错误,是由于连接了多个设备或者模拟器

6、导致,进行测试时,需要指定设备,使用 s 参数;adb s 022nqs145l001556 shell2.3.4. 查看设备data目录下的包名在adb shell下使用:su 命令获取root权限,后再使用:# ls data/data 命令,连接设备data目录下的包名。2.4. 进行monkey测试2.4.1. 进行monkey测试明确要测试的包名后,在进入root权限后使用:# monkey -p com.android.calculator2 -v 500;将其中com.android.calculator2替换为要测试的目标即可。*如果要将测试log导出到计算机,需要在adb目录

7、下直接输入命令开始测试,在原始测试命令后追加用于存放测试log的目录及文件名称,例:如“e:log.txt”;adb shell monkey p com.yuxuan.dancing v 200 e:log.txt测试结果log会被存放在e:log.tx中2.4.2. adb shell参数设置. 参数:-p参数-p用于约束限制,用此参数指定一个或多个包(package,即app)。指定包之后,monkey将只允许系统启动指定的app。如果不指定包,monkey将允许系统启动设备中的所有app。* 指定一个包: adb shell monkey -p com.htc.weath

8、er 100说明:com.htc.weather为包名,100是事件计数(即让monkey程序模拟100次随机用户事件)。* 指定多个包:adb shell monkey -p com.htc.weather p com.htc.pdfreader -p com.htc.photo.widgets 100* 不指定包:adb shell monkey 100说明:monkey随机启动app并发送100个随机事件。* 要查看设备中所有的包,在cmd窗口中执行以下命令: adb shell #cd data/data #ls. 参数:-v用于指定反馈信息级别(信息级别就是日志的详细程

9、度),总共分3个级别,分别对应的参数如下表所示:1. 日志级别 level 0 示例 adb shell monkey -p com.htc.weather v 100说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息;2. 日志级别 level 1示例 adb shell monkey -p com.htc.weather v -v 100说明 提供较为详细的日志,包括每个发送到activity的事件信息;3. 日志级别 level 2示例 adb shell monkey -p com.htc.weather v -v v 100说明 最详细的日志,包括了测试中选中/未选中的act

10、ivity信息;. 参数:-s用于指定伪随机数生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也相同的。* 示例:monkey测试1:adb shell monkey -p com.htc.weather s 10 100monkey 测试2:adb shell monkey -p com.htc.weather s 10 100两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的seed值,就可以保证两次测试产生的随机操作序列是完全相同的

11、,所以这个操作序列伪随机的;. 参数:-throttle 用于指定用户操作(即事件)间的时延,单位是毫秒;* 示例:adb shell monkey -p com.htc.weather throttle 3000 100. 参数:-ignore-crashes用于指定当应用程序崩溃时(force & close错误),monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。* 示例1:adb shell monkey -p com.htc.weather -ignore-crashes 1000;测试过程中即使we

12、ather程序崩溃,monkey依然会继续发送事件直到事件数目达到1000为止;* 示例2:adb shell monkey -p com.htc.weather 1000;测试过程中,如果weather程序崩溃,monkey将会停止运行。. 参数:-ignore-timeouts用于指定当应用程序发生anr(application no responding)错误时,monkey是否停止运行。如果使用此参数,即使应用程序发生anr错误,monkey依然会发送事件,直到事件计数完成。. 参数:-ignore-security-exceptions用于指定当应用程序发

13、生许可错误时(如证书许可,网络许可等),monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,monkey依然会发送事件,直到事件计数完成。. 参数:-kill-process-after-error用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。. 参数:-monitor-native-crashes用于指定是否监视并报告应用程序发生崩溃的本地代码。0. 参数:-pct-+事件类别 +事件类别

14、百分比用于指定每种类别事件的数目百分比(在monkey事件序列中,该类事件数目占总事件数目的百分比)参数:使用说明:示例:-pct-touch +百分比;调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置);adb shell monkey -p com.htc.weather -pct-touch 10 1000-pct-motion +百分比;调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成);adb shell monkey -p com.htc.weather -pct-motion 20 1000-pc

15、t-trackball +百分比;调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击);adb shell monkey -p com.htc.weather -pct-trackball 30 1000-pct-nav +百分比;调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成);adb shell monkey -p com.htc.weather -pct-nav 40 1000-pct-majornav +百分比;调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回

16、退按键、菜单按键);adb shell monkey -p com.htc.weather -pct-majornav 50 1000-pct-syskeys +百分比;调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如home、back、start call、end call及音量控制键);adb shell monkey -p com.htc.weather -pct-syskeys 60 1000-pct-appswitch +百分比;调整启动activity的百分比。在随机间隔里,monkey将执行一个startactivity()调用,作为最大程度覆盖包中全部activ

17、ity的一种方法;adb shell monkey -p com.htc.weather -pct-appswitch 70 1000-pct-anyevent +百分比;调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等;adb shell monkey -p com.htc.weather-pct -anyevent 100 1000* 指定多个类型事件的百分比;adb shell monkey -p com.htc.weather -pct-anyevent 50 -pct-appswitch 50 1000*注意:各事件类型的百分比总数不能超过1

18、00%;3. monkey测试结果分析3.1. 测试log导出需要将测试log导出到计算机时,需要在在adb目录下,进行monkey测试,在adb目录下输入测试命令,在原始测试命令后追加用于存放测试log的目录及文件名称,例如:“e:log.txt”;adb shell monkey p com.yuxuan.dancing v 200 e:log.txt3.2. 测试结果分析3.2.1. 初步分析monkey测试出现错误后,一般的差错步骤为以下几步:1、 找到是monkey里面的哪个地方出错2、 查看monkey里面出错前的一些事件动作,并手动执行该动作3、 若以上步骤还不能找出,可以使用之

19、前执行的monkey命令再执行一遍,注意seed值要一样一般的测试结果分析:1、 anr问题:在日志中搜索“anr”2、 奔溃问题:搜索“crash”2、 异常问题:在日志中搜索“exception”3.2.2. 详细分析将执行monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示monkey执行的seed值、执行次数和测试的包名。首先我们需要查看monkey测试中是否出现了anr或者异常,具体方法如上述。然后我们要分析log中的具体信息,方法如下:查看log中第一个switch,主要是查看monkey执行的是那一个activity,譬如下面的log中,执行的是co

20、m.tencent.smtt.splashactivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该activity中查找问题的所在。:switch:#intent;action=ent.action.main;category=ent.category.launcher;launchflags=0x10000000;component=com.tencent.smtt/.splashactivity;end/ allowing start of intent act=ent.action.main cat

21、=ent.category.launchercmp=com.tencent.smtt/.splashactivity in package com.tencent.smtt在下面的log中,sending pointer action_down和sending pointer action_up代表当前执行了一个单击的操作;sleeping for 500 milliseconds这句log是执行monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。sendkey(action_down) /keycode_dpad_down 代表当前执行了一个

22、点击下导航键的操作;sending pointer action_move 代表当前执行了一个滑动界面的操作。:sending pointer action_down x=47.0 y=438.0:sending pointer action_up x=47.0 y=438.0sleeping for 500 milliseconds:sendkey (action_down): 20 /keycode_dpad_down:sendkey (action_up): 20 /keycode_dpad_downsleeping for 500 milliseconds:sending pointe

23、r action_move x=-2.0 y=3.0:sending pointer action_move x=4.0 y=-3.0:sending pointer action_move x=-5.0 y=-3.0:sending pointer action_move x=3.0 y=4.0:sending pointer action_move x=-4.0 y=1.0:sending pointer action_move x=-1.0 y=-1.0:sending pointer action_move x=-2.0 y=-4.0如果monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;/ monkey finished代表执行完成。monkey执行中断,在log的最后也能查看到当前已执行的次数。monkey执行完成的log具体如下:events injected: 6000:dropped: keys=0 pointers=9 trackballs=0 flips=0# network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)/ monkey fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论