MonkeyTalk自动化测试文档

合集下载

Android Monkey使用说明——手册

Android Monkey使用说明——手册

自动化测试工具Monkey1、什么是MonkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。

它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

2、Monkey的特征A、测试的对象仅为应用程序包,有一定的局限性。

B、Monky测试使用的事件流数据流是随机的,不能进行自定义。

C、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

3、Monkey的基本用法$ adb shell monkey –p(包) –v(频率)5004、Monkey测试的停止条件Monkey Test执行过程中在下列三种情况下会自动停止:A、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

B、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

C、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

使用Monkey流程总的来说使用monkey进行测试是比较简单的,只是需要做一些比较复杂的准备工作。

下面详解测试步骤(很简单的哦),所讲内容是建立在已经配置好ADB环境的基础上(如果这部分不清楚请先google一下先配置好环境,这里不做描述)。

1、ADB连接Android测试设备。

2、确定你要测试的应用的PackageName。

3、使用Monkey发一条测试命令。

步骤详解步骤确实很简单吧。

不敢保证读者都明白如何去完成上面的步骤,这里讲讲每步如何做。

1、ADB连接Android测试设备。

如果你用的是模拟器,那么启动后通常是已经连在ADB上了。

对于真机来说两种方式都可以:方式一:使用USB把Android设备接到PC上,然后装上驱动(不好找驱动的话就用豌豆荚吧)。

Monkey自动化测试

Monkey自动化测试

1.测试策略类型:稳定性测试和压力测试测试对象:单一APK和APK集合目的:解决问题的测试(忽略异常的测试)和验收测试(不忽略异常的测试)稳定性测试:1>、针对单个APK1.不忽略异常:在进行单个APK 的验收测试时,则使用单一APK且不忽略异常的命令执行。

例如:monkey–p com.android.mms--throttle 1000 –s 100 –v –v –v 15000 > /mnt/sdcard/monkey_test.txt&2.忽略异常:在进行单个APK的解决问题的测试时,则使用单一APK且忽略异常的命令执行,这样可以在一次执行的过程中发现应用程序的多个问题。

例如:monkey –p com.android.mms--throttle 1000 –s 100--ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes –v –v –v 150002>针对多个APK1.不忽略异常:例如:monkey–pkg-whitelist-file/data/whiltelist.txt --throttle 1000 –s100 –v –v –v 1500 > /mnt/sdcard/monkey_test.txt&2.忽略异常:例如:monkey --pkg-whitelist-file/data/whitelist.txt--throttle 1000 -s 100 --ignore-crashes--ignore-timeouts--ignore-security-exceptions--ignore-native-carshes --monitor-native-crashes-v -v -v15000 > /mnt/sdcard/monkey_test.txt &压力/健壮性测试应用程序的压力/健壮性测试,其主要是缩短monkey 测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运行。

Monkey测试执行与LOG分析_游戏中心测试人员使用

Monkey测试执行与LOG分析_游戏中心测试人员使用

1、Monkey测试介绍Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

传统意义上,Monkey测试主要针对的是应用的健壮性与稳定性,它通过大量的随机的用户事件来检测应用是否会异常。

主要使用Monkey测试来进行内存泄露检查。

2、Monkey测试执行Monkey测试可分为环境配置、测试执行、结果分析3步骤。

2.1、环境配置MONKEY测试使用的是ADB命令,因此只需要配置ADB环境即可。

2.2、测试准备与执行在Monkey测试前,必须进行以下准备手机屏幕超时设置为30分钟,防止手机进入锁屏状态。

插入SIM卡和存储卡后将手机开机,开启ADB模式,连接到PC(存储卡剩余空间尽量留大,建议1G以上)开启系统log。

(具体可依据每个机型平台决定)在PC上执行运行—>CMD,在弹出的命令窗口中,输入adb devices,检查设备是否连接在弹出的命令窗口中,输入adb shell,进入Linux Shell2.3、结果检查与分析测试结束后,需要将手机连接PC,拷贝以下文件:info.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等。

error.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。

LOG文件:此文件在手机上的LOG文件夹中中,主要主要记录程序对MONKEY测试时的响应情况。

我们需要对这3个文件进行分析整理,以便提交开发人员处理。

2.3.1、检查测试是否完成通过info.txt文件,可以查看Monkey是否执行成功。

如下图2.3.2、结果分析整理前文有提及,我们目前执行Monkey测试的目的是为了检查是否有内存泄露,而这类问题主要是通过Log 文件来体现的。

monkey测试文档

monkey测试文档

Android Monkey测试Android中的monkey是对app做界面压力测试的一款工具,它可以向模拟器或者真机发送一系列随机的用户操作事件、或者系统事件。

概述Monkey是android sdk自带的一款命令行工具,适用于任何android模拟器或者真机。

它通过向手机发送一系列的随机事件,来测试手机app的稳定性。

Monkey命令包含一些参数,大体可以分为四类:∙基本参数,如指定随机事件的个数∙操作约束,如限制随机操作在指定的包内∙事件类型和频率∙调试选项Monkey运行过程中,向android系统发送随机事件。

并且,monkey会监视android 系统的运行状态,保证下面的三点:∙如果我们限制了monkey只在一个或几个包中运行。

那么monkey在运行过程中会监视产生的随机事件,如果某一事件会跳到其他包中,monkey就会丢弃该事件,确保monkey只在指定的包中运行。

∙如果我们的程序出现crash或者有未被捕获的异常,monkey就会停止运行,并报错。

∙如果我们的程序出现未响应,monkey会停止运行,并报错。

Monkey的基本用法我们可以在直接在命令行或者脚本中运行monkey,前提是android sdk环境已经ok。

基本语法如下:$ adb shell monkey [options] <event-count>如果没有其他参数限制,monkey默认以quiet模式运行,它会随机向手机中的包发送请求。

一般请求,我们都需要指定包名,下面的命令限制了包名,且指定产生500个随机事件:$ adb shell monkey -p com.yeetrack.android.client -v 500Monkey的参数下面列出了Monkey可以使用的参数。

基本参数∙--help打印帮助文档∙-v命令行中的每一个-v将增加反馈信息的级别。

Level 0(也是默认值)除启动提示、测试完成和最终结果之外,其他的信息很少。

移动端自动化测试之--Monkey

移动端自动化测试之--Monkey

移动端⾃动化测试之--Monkey ⽬录monkey简介monkey基本命令monkey事件monkey参数monkey⾃定义脚本⼀、monkey简介1、简介Monkey是Android SDK提供的⼀个命令⾏⼯具;它可以产⽣随机的⽤户操作事件流,并控制设备执⾏,产⽣⽇志,对app进⾏⿊盒压测;它还可以编辑脚本,⾃定义事件流,对app进⾏稳定的⾃动化测试;2、monkey路径monkey所在路径:adb shell /system/bin/monkeyjar包所在路径:adb shell /system/framework/monkey.jar⼆、monkey基本命令1、基本命令格式adb shell monkey [options] <event-count># []表⽰可选项,<>表⽰必填项# option表⽰传⼊的参数# event-count表⽰⽣成随机事件的数量2、关闭monkeyadb shell ps |findstr monkey # 找到monkey进程,查看它的pidadb shell kill pid # 通过指定的pid杀掉monkey进程三、monkey事件monkey有11⼤事件,在执⾏monkey时,通过配置对应事件的产⽣⽐例来重点测试某种事件:命令格式:adb shell monkey [options] --pct-事件 <event-count>触摸事件:touch⼿势事件:motion⼆指缩放事件:pinchzoom轨迹事件:trackball屏幕旋转事件:rotation基本导航事件:nav主要导航事件:majornav系统按键:syskeys启动activity事件:appswitch键盘事件:flip四、monkey参数1、常规类型参数1. 查看帮助:monkey –h # 查看monkey帮助2. ⽇志级别:1. monkey –v # 基本2. monkey –v –v # 详细3. monkey –v –v –v # 详尽2、事件类型参数1. 指定脚本执⾏:monkey –f <脚本位置>2. 伪随机数⽣成种⼦值(⽤于标记并复现monkey操作):1. monkey –s <seed> # 第⼀次指定标记(seed为标记数字)2. monkey –s <seed> # 第⼆次复现相同seed的操作3. 指定事件⽣成的时间间隔:monkey --throttle <毫秒数>3、约束类参数1. 包约束:-p <packageNames> # 可指定⼀个或多个包名2. activity约束:monkey –c <activityName>4、调试类参数1. 程序崩溃后继续执⾏:--ignore-crashes2. 超时后继续执⾏:--ignore-timeouts3. 发⽣异常后继续执⾏:--ignore-security-exception五、monkey⾃定义脚本1、monkey只⽀持屏幕坐标点来定位元素在设置--开发者选项--指针位置(打开),再点击屏幕就可以显⽰屏幕坐标点位置了2、常⽤的monkey APILaunchActivity(pkg_name,cl_name):启动应⽤的Activity,参数:包名和activity名Tap(x,y,tapDuration):模拟⼀次⼿指单击事件。

MonkeyTalk官方文档翻译

MonkeyTalk官方文档翻译

MonkeyTalk工具简介前言:MonkeyTalk工具是本人觉得强大、轻量、好用的一款工具,但是目前网上没有什么中文的资料,因此产生了对它官方文档进行一下翻译工作的想法,这是第一帖,本人水平有限,哪里有错还请大虾们指正。

MonkeyTalk 简介:MonkeyTalk是世界上最强大的移动应用测试工具。

它实现iOS及Android上真实的、功能交互的自动化测试——包括从最简单的冒烟测试到复杂的数据驱动测试集的所有的测试。

它支持原生、移动、混合型应用,在虚拟机或者真实设备上。

MonkeyTalk2.0社区版本是Gorilla Logic五年来创建自动化测试工具的巅峰成就。

它的下载量超过7万次,支持者世界各地的团队灵敏快速地实现他们“五星好评”的移动应用。

现在MonkeyTalk有了专业版,移动测试自动化变得更容易了。

MonkeyTalk专业版本是建立在社区办的基础上,为专业的移动测试提供无缝的工作流、更高的生产力、更少的麻烦和更简单的配置。

它设计的初衷就是服务于应用测试人员和开发人员,事实证明它为每个项目的自动化测试都带来了良好的收益。

MonkeyTalk专业版是与CloudMonkeyMobile签约的产品,目前提供了免费的beta版本。

MonkeyTalk FAQ:1,它总体是怎么工作的?答:MonkeyTalk是彻底的移动应用功能测试平台。

它目前支持原生及混合的应用测试。

此平台有三个基本的模块:MonkeyTalk IDE(集成开发环境),MonkeyTalk Agent及MonkeyTalk脚本。

MonkeyTalk IDE ——一个可以录制、回放及编写测试脚本的桌面应用MonkeyTalk Agent ——一个必须插入到所测试应用中的库MonkeyTalk Script ——美观、简单易懂、方便维护的测试脚本首先,你必须把MonkeyTalk Agent植入到所测的应用中(详情请看相关文档/monkeytalk-documentation/monkeytalk-getting-started/in stall-agentMonkeyTalk),然后你可以使用IDE录制和回放脚本。

基于monkeytalk自动化测试之安装配置及使用

基于monkeytalk自动化测试之安装配置及使用

基于monkeytalk的手机App自动化测试之安装配置及使用中国软件评测中心刘烨一、什么是自动化测试自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

二、自动化测试好处⏹可以执行一些手工测试困难或不可能进行的测试。

⏹测试的复用性强。

⏹提高测试效率三、手机应用自动化测试种类●全自动化测试工具:See test、testin、cutdown●自动化辅助测试工具:monkeytalk、monkeyrunner●自动化测试管理:QC(HP ALM)四、Monkeytalk自动化测试工具介绍MonkeyTalk软件测试工具由两部分构成:MonkeyTalk IDE 和MonkeyTalk Agents。

MonkeyTalk IDE是Eclipse平台的工具,工能是:对iOS、Android程序进行录制、播放、编辑和管理功能测试,测试的目标可以是模拟器,也可以是硬件设备;MonkeyTalk Agents是测试IOS与Android的库文件,测试时必须放到程序中作为代理使用,测试时的所有动作都由这个代理向IDE传递;(说明:MonkeyTalk IDE与MonkeyTalk Agents 是分开安装的,只有程序中安装了MonkeyTalk Agents,MonkeyTalk IDE才能发现这个程序并纪录他的操作)五、Monkeytalk安装a)安装的MonkeyTalk的IDE1.首先下载MonkeyTalk安装包下载地址参考官方网站2、安装运行。

解压安装包,在\monkeytalk\MonkeyTalkIDE目录下运行MonkeyTalkIDE.exeb)Eclipse环境配置在Monkeytalk使用前需要配置Eclipse、Java、Sdk请参考官方网站,如果你已有配置好的Eclipse环境跳过此步骤。

c)安装的MonkeyTalk的Android的代理在Eclipse中打开你的Android项目。

Monkey测试的参数

Monkey测试的参数

Monkey测试的参数⼀、Monkey测试简介Monkey测试是Android平台⾃动化测试的⼀种⼿段,通过Monkey程序模拟⽤户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常。

⼆、Monkey程序介绍1) Monkey程序由Android系统⾃带,使⽤Java语⾔写成,在Android⽂件系统中的存放路径是:/system/framework/monkey.jar;2) Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试了。

三、Monkey命令的简单帮助要获取Monkey命令⾃带的简单帮助,在CMD中执⾏命令:adb shell monkey –help四、Monkey命令参数介绍1) 参数: -p参数-p⽤于约束限制,⽤此参数指定⼀个或多个包(Package,即App)。

指定包之后,Monkey将只允许系统启动指定的APP。

如果不指定包,Monkey将允许系统启动设备中的所有APP。

* 指定⼀个包: adb shell monkey -p com.htc.Weather 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#ls2) 参数: -v⽤于指定反馈信息级别(信息级别就是⽇志的详细程度),总共分3个级别,分别对应的参数如下表所⽰:⽇志级别 Level 0⽰例 adb shell monkey -p com.htc.Weather –v 100说明缺省值,仅提供启动提⽰、测试完成和最终结果等少量信息⽇志级别 Level 1⽰例 adb shell monkey -p com.htc.Weather –v -v 100说明提供较为详细的⽇志,包括每个发送到Activity的事件信息⽇志级别 Level 2⽰例 adb shell monkey -p com.htc.Weather –v -v –v 100说明最详细的⽇志,包括了测试中选中/未选中的Activity信息3)参数: -s⽤于指定伪随机数⽣成器的seed值,如果seed相同,则两次Monkey测试所产⽣的事件序列也相同的。

monkey自动化测试

monkey自动化测试

一般的测试结果分析:
1、 ANR问题:在日志中搜索“ANR” 2、崩溃问题:在日志中搜索“Exception”
6. Monkey测试结果分析
详细分析monkey日志: 将执行Monkey生成的log,从手机中导出并 打开查看该log;在log的最开始都会显示 Monkey执行的seed值、执行次数和测试的 包名。 首先我们需要查看Monkey测试中是否出现了 ANR或者异常,具体方法如上述。然后我们 要分析log中的具体信息。
2. Monkey环境配置
在Windows下基于SDK: 1.下载SDK for Windows,解压:android-sdkwindows 到D:盘根目录; 2. 设置sdk下面tools的环境变量,右击“计算机”> 属性>高级系统设置>环境变量>点击Path,将 “D:\android-sdk-windows\platform-tools”添加到变 量值中,与之前的变量值用“;”隔开; 3. 下载安装JDK ,下载完成之后点击安装,默认安装 就可以了; 4. platforms存在就不用看了(如果SDK无法自动下 载platforms,手工下载Android sdk 2.1,将android2.1_r01-windows.zip文件解压之后放到android-sdkwindows\platforms); 5.1电脑USB 连接手机; 5.2.开始->运行(win+R键),输入cmd,在命令行录入 adb shell ; 5.3.接下来可以运行Monkey Test的命令 如:monkey –p com.iss.mobilecloud –v 1000 (需要测试的包);
事件说明
--pct-touch {+百分比} 调整触摸事件的百分比(触摸事件是一个 down-up事件,它发生在屏幕上的某单一位置) --pct-motion {+百分比}调整动作事件的百分比(动作事件由屏幕上 某处的一个down事件、一系列的伪随机事件和一个up事件组成) --pct-trackball {+百分比}调整轨迹事件的百分比(轨迹事件由一个或 几个随机的移动组成 --pct-nav {+百分比} 调整“基本”导航事件的百分比(导航事件由来 自方向输入设备up/down/left/right组成) --pct-majornav {+百分比} 调整“主要”导航事件的百分比(这些导 航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退 按键、菜单按键) --pct-syskeys {+百分比} 调整“系统”按键事件的百分比(这些按键 通常被保留,由系统使用,如Home、Back、Start Call、End Call及 音量 --pct-appswitch {+百分比} 调整启动Activity的百分比。在随机间隔 里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全 部Activity --pct-anyevent {+百分比} 调整其它类型事件的百分比。它包罗了所 有其它类型的事件,如:按键、其它不常用的设备按钮、等等

Monkey测试性能报告

Monkey测试性能报告

Monkey测试性能报告软件简介Monkey测试是Android自动化测试的一种手段。

Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。

当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等,以及一些系统级别的事件。

通常也称随机测试或者稳定性测试。

软件特点monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。

当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。

测试案例Windows下:1、通过eclipse启动一个Android的emulator2、在命令行中输入:adb devices查看设备连接情况C:\Documents and Settings\Administrator>adb devicesList of devices attachedemulator-5554 device精品文库3、在有设备连接的前提下,在命令行中输入:adb shell进入shell界面C:\Documents and Settings\Administrator>adb shell#4、查看data/data文件夹下的应用程序包。

注:我们能测试的应用程序包都在这个目录下面C:\Documents and Settings\Administrator>adb shell# ls data/datals data/datacom.google.android.btroutercom.android.providers.telephonycom.android.mmscom.android.providers.downloadscom.android.deskclockcom.android.emailcom.android.providers.mediacom.android.settingsjp.co.omronsoft.openwnnerdictionary精品文库com.android.quicksearchboxcom.android.protipscom.android.browserunchercom.android.termcom.android.speechrecordercom.android.server.vpncom.android.defcontainercom.svox.picocom.android.customlocalecom.android.developmentcom.android.soundrecordercom.android.providers.drmcom.android.spare_partscom.android.providers.downloads.uicom.android.fallbackcom.android.providers.applicationsspeed精品文库com.android.wallpaper.livepickerandroid.ttscom.android.htmlviewercom.android.musiccom.android.certinstallercom.android.inputmethod.pinyincom.android.providers.subscribedfeedstincom.android.gallerycom.android.systemuicom.android.contactscom.android.phonecom.android.sdksetupcom.android.calculator2com.android.packageinstallercom.android.cameracom.android.providers.settingscom.thestore.main精品文库com.android.providers.contacts5、以com.android.calculator2作为对象进行MonkeyTest#monkey -p com.android.calculator2 -v 500其中-p表示对象包–v 表示事件数量运行过程中,Emulator中的应用程序在不断地切换画面。

[全]自动化测试Android自动化压力测试monkey实战

[全]自动化测试Android自动化压力测试monkey实战

自动化测试Android自动化压力测试monkey实战一、Monkey测试的目的?Monkey 主要用于Android 的自动化压力测试工具,可以运行在模拟器里或手机设备中,向系统发送随机的用户事件流,通过Monkey程序模拟用户触摸屏幕、滑动、按键等操作来对设备上的程序进行压力测试,检测app的稳定性,健壮性。

二、什么是Monkey程序?1.Monkey程序由Android系统自带,使用Java写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;2.Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell 脚本在Android文件系统中的存放路径是:/system/bin/monkey;3.Monkey 命令启动方式:(1)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试(2)在PC上adb shell 进入Android系统,通过执行monkey {+命令参数} 来进行Monkey 测试(3)在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器流程图三、monkey命令的各个参数标准的monkey 命令:[adb shell] monkey [options] <eventcount>参数四大类——常用选项、事件选项、约束选项、调试选项monke参数1.常用选项--help:打印帮助信息-v:指定打印信息的详细级别,一个-v增加一个级别,默认级别为0。

用于指定反馈信息级别,总共分3个级别:(1)日志级别Level 0:缺省值,仅提供启动提示、测试完成和最终结果等少量信息;(2)日志级别Level 1:提供较为详细的日志,包括每个发送到Activity的事件信息(3)日志级别Level 2:最详细的日志,包括了测试中选中/未选中的Activity 信息2.事件选项-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列--throttle:每个事件结束后的间隔时间--pct-touch:指定触摸事件的百分比--pct-motion <percent>:滑动事件--pct-trackball <percent>:轨迹球事件--pct-nav <percent>:导航事件(up/down/left/right)--pct-majornav <percent>:主要导航事件(back key/menu key) --pct-syskeys <percent>:系统按键事(Home/Back/start Call/ end Call/volume Control)--pct-appswitch <percent>:activity之间的切换--pct-anyevent <percent>:任意事件3、约束选项-p:指定有效的package参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。

如何利用Monkey工具进行Android自动化测试

如何利用Monkey工具进行Android自动化测试

如何利用Monkey工具进行Android自动化测试自动化测试在软件开发中起到了至关重要的作用,它可以有效地提高测试效率、节省测试时间,并且能够减少人为错误的可能性。

而在Android开发领域,Monkey工具是一种非常实用的自动化测试工具,它可以模拟用户在设备上的随机操作,从而对应用程序进行全面的测试。

本文将介绍如何使用Monkey工具进行Android自动化测试。

一、Monkey工具简介Monkey工具是Android平台提供的一种压力测试工具,它通过产生伪随机事件(如点击、滑动、触摸等)来模拟用户操作。

Monkey工具不需要源代码,只需要一个APK文件即可进行测试。

因此,它可以对任何已安装的Android应用进行测试,包括系统应用和第三方应用。

二、Monkey工具的使用步骤1. 连接设备首先,将Android设备连接到开发电脑上,确保设备处于调试模式下,并且已安装好ADB工具。

2. 启动Monkey工具在命令行窗口中输入以下命令来启动Monkey工具:```adb shell monkey <参数>```其中,参数是指定Monkey工具的具体配置和行为方式。

3. 配置参数根据测试需求,设置不同的参数来指导Monkey工具的行为。

以下是常用的参数配置示例:- `--pct-touch`:设置触摸事件的百分比。

- `--pct-motion`:设置手势事件的百分比。

- `--throttle`:设置事件之间的间隔时间,单位为毫秒。

- `--ignore-crashes`:忽略崩溃错误。

- `--ignore-timeouts`:忽略超时错误。

- `--package`:指定要测试的应用程序包名。

4. 运行Monkey测试配置完参数后,输入以下命令来运行Monkey测试:```adb shell monkey -p <应用程序包名> <事件次数>```其中,应用程序包名是指定要测试的应用程序包名,事件次数是指定Monkey工具执行事件的总次数。

【自动化】Monkey自动化测试实现总结

【自动化】Monkey自动化测试实现总结

【⾃动化】Monkey⾃动化测试实现总结⽬的:“盲点”进⾏monkey⾃动化测试,检测卡死注意:设置对应企业证书+APP名称+设置测试时间:存储log路径:/Users/XXXX/Library/Developer/Xcode/DerivedData/XCTestWD-dodkkvpngiaeisakvpjpjukiraqy/Logs/Test教程:ps :建议使⽤xcode 10.1, mac系统不升级到最新10.15即可(可能中间很多步骤都不需要经历,就能安装成功)1、下载Fastmoneygit clone2、下载后检查路径并解压⽂件/Users/xxxxx/Fastmonkey3、进⼊Fastmonkey路径下并更新所需要的依赖cd /Users/xxxxx/Fastmonkey/XCTestWD-master4、因安装所需的第三库需要先安装Carthage (第三⽅管理⼯具),若未安装请先安装carthagebrew install carthage-----------------------------------------------------5、若提⽰未安装Homebrew,请先安装Homebrew(包管理⼯具)/usr/bin/ruby -e "$(curl -fsSL )"6、更新brew到最新版本brew update注意:如果遇到Error: The /usr/local directory is not writable.错误,就执⾏以下命令sudo chown -R $(whoami):admin /usr/local,再更新。

-----------------------------------------------------7、继续第4步,安装carthage8、安装carthage成功后,更新所需的第三⽅库1)⾸先进⼊cd /Users/xxxxx/Fastmonkey/XCTestWD-master2)创建carthage⽂件touch Cartfile3)此时项⽬⽂件夹中会有⼀个名字为Carthage的⽂件4)使⽤xcode打开该⽂件open -a Xcode Cartfile-------------------------------------------5)在⽂件中输⼊需要更新的第三库并指定版本(以下为多次尝试可⽤的第三⽅库版本)github "Alamofire/Alamofire" ~> 4.0github "httpswift/swifter" == 1.4.3github "SwiftyJSON/SwiftyJSON" == 4.2.0github "cezheng/Fuzi" ~> 2.1.0github "tadija/AEXML" == 4.2.2github "CocoaLumberjack/CocoaLumberjack" == 3.2.0github "Quick/Nimble"6)保存⽂件并退出7)如遇更新报错,打开xcode -> Preferences -> Locations,选择xcode版本为10.19、更新:carthage update--------------------------------------------10、第三⽅库下载完成后,开始配置XCTestWD.xcodeproj1)⽤Xcode打开XCTestWD.xcodeproj2)修改为企业证书XCTestWD->General->Signing->TeamXCTestWDUITests->General->Signing->Team3)将XCTestWD->Build Setting->Header Search Paths和XCTestWD->Build Setting->Objective-C Bridging Header⾥⾯的XCTestWD/XCTestWD-Bridging-Header.h删掉(解决编译报错:error: bridging header '/Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD/XCTestWD/XCTestWD-Bridging-Header.h' does not exist)4)修改Product ID11、修改XCTestWD项⽬⼯程代码中的配置值1)修改运⾏模式,将XCTestWDRunner.swift⽂件中的serverMode设置为false2)修改XCTestWDMonkey.swift⽂件中的bundleID为被测App的值3)修改Monkey.swift⽂件中的elapsedTime值确定你需要运⾏多长时间的Monkey,注意单位是秒12、执⾏Monkey⽅法1:1)将被测⼿机连接电脑(注意App事先安装到被测试⼿机上)2)xcode选择执⾏XCTestWDUITests3)Product - > Test⽅法2:1)将被测⼿机连接电脑(注意App事先安装到被测试⼿机上)2)打开⼀个终端窗⼝,执⾏以下命令iproxy 8001 80013)再打开⼀个端⼝,先进⼊⼯程所在⽬录cd /Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD4)执⾏以下命令(注意,devidce name 为被测⼿机名称,注意单引号为英⽂状态下输⼊)xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination ‘platform=iOS,name=devide name’XCTESTWD_PORT=8100 clean test13、编译报错的解决办法1)ideviceinstaller: command not foundCommand /bin/sh failed with exit code 127解决办法:安装ideviceinstallerbrew uninstall ideviceinstallerbrew uninstall libimobiledevicebrew install --HEAD libimobiledevicebrew link --overwrite libimobiledevicebrew install ideviceinstallerbrew link --overwrite ideviceinstaller备注:在使⽤中如果遇到Could not connect to lockdownd. Exiting错误可以试试升级libusbmuxd并重新安装ideviceinstallerbrew uninstall --ignore-dependencies libimobiledevicebrew uninstall --ignore-dependencies usbmuxdbrew install --HEAD usbmuxdbrew unlink usbmuxdbrew link usbmuxd2)可以编译成功,但执⾏Monkey过程中报错Assertion Failure: XCTestWDRunner.swift:39: failed: caught "NSInvalidArgumentException", "+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x104afc130"解决办法:⼀开始搭建环境时使⽤的xcode版本为10.2。

monkey测试用例

monkey测试用例

monkey测试用例随着移动互联网的快速发展,手机应用程序的数量也呈现爆发式增长。

为了保证应用程序的质量和稳定性,开发人员需要进行各种测试工作。

其中一种常见的测试方法就是Monkey测试。

Monkey测试是一种自动化测试方法,通过模拟用户的随机操作来测试应用程序的稳定性和健壮性。

它的原理是随机生成各种用户事件,如点击、滑动、按键等,然后将这些事件发送给应用程序进行测试。

通过这种方式,开发人员可以发现应用程序中的潜在问题和漏洞,从而提高应用程序的质量。

在进行Monkey测试时,需要编写一系列的测试用例。

这些测试用例是模拟用户操作的脚本,用于生成各种用户事件。

下面是一些常见的Monkey测试用例:1. 点击测试:模拟用户随机点击屏幕上的各个区域,包括按钮、链接、输入框等。

通过这种测试用例,可以检测应用程序在不同点击位置下的响应情况。

2. 滑动测试:模拟用户随机滑动屏幕,包括上下滑动、左右滑动等。

通过这种测试用例,可以检测应用程序在滑动操作下的稳定性和流畅性。

3. 按键测试:模拟用户随机按下手机上的各个按键,包括返回键、菜单键、音量键等。

通过这种测试用例,可以检测应用程序对按键事件的处理情况。

4. 输入测试:模拟用户随机输入文字、数字、特殊字符等。

通过这种测试用例,可以检测应用程序对用户输入的处理情况,如输入是否合法、输入是否被正确保存等。

5. 异常测试:模拟各种异常情况,如网络异常、内存不足、电量不足等。

通过这种测试用例,可以检测应用程序在异常情况下的稳定性和容错性。

编写Monkey测试用例需要考虑以下几个方面:1. 覆盖率:测试用例应该尽可能覆盖应用程序的各个功能和模块,以发现潜在问题和漏洞。

2. 随机性:测试用例应该具有一定的随机性,以模拟用户的真实操作。

这样可以更好地发现应用程序中的问题。

3. 参数设置:测试用例的参数设置应该合理,以保证测试的有效性和准确性。

例如,点击测试中可以设置点击的区域范围和点击的次数。

Monkeyrunner操作测试

Monkeyrunner操作测试

Monkeyrunner操作手册一、自动化测试的原理a) 手机自动化测试的原理i. 手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。

完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。

ii. 关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。

iii. 而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义。

iv. 而有的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)v. 自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。

b) MonkeyRunner自动化测试的原理MonkeyRunner工具提供了一个API,运用该API编写的程序可以不用通过Android代码来直接控制Android设置和模拟器,我们可以写一个Python程序对A ndroid应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在指定目录上等操作。

二、环境搭建a)连接手机: 1 Android需要Root;2 (不必须)安装RE,控制data/data挂载权限工具安装i.JDK安装:详细:JDK安装配置ii.SDK安装:建议拷贝SDK包,解压后配置SDK环境变量或安装详细:SDK 安装配置iii.安装apktool,下载apktool包,解压后,拷贝到SDK:..sdk\tools\下iv.Python编译器安装:1.下载python安装包2.双击打开python3.选择安装路径,点击NEXT,到安装完成4.配置python环境变量,在添加python安装地址v.安装完成后在cmd窗口下面分别输入java –version、python和monkeyrunner检查是否正确安装,如下图所示:至此环境安装就结束了三、Monkeyrunner:连接真机因为模拟器和真机的巨大差距,建议使用真机做Monkeyrunner自动化测试,如果没有真机,自行安装虚拟模拟器。

App自动化测试之Monkey使用场景及常用命令

App自动化测试之Monkey使用场景及常用命令

App⾃动化测试之Monkey使⽤场景及常⽤命令⼀、Monkey测试简介Monkey通过模拟⽤户触摸屏幕、滑动Trackball、按键等程序来对设备上的程序进⾏压⼒测试,检测程序多久会发⽣异常。

⼀般异常分为以下三种:⽆响应(ANR)、奔溃(crash)、闪退。

奔溃和闪退的区别在于前者有提⽰框,⽽后者没有,直接跳到系统桌⾯上。

⼆、Monkey常⽤场景命令●参数: -p⽤于约束限制,指定⼀个或多个包。

设置后则系统只启动指定的APP,不指定包则会启动系统内的所有APP.指定⼀个包:adb shell monkey -p com.moonbasa 1000指定多个包:adb shell monkey -p com.moonbasa -p com.moonbasa.taylorsage 1000不指定包:adb shell monkey 1000(⽤monkey模拟1000次随机⽤户事件)●参数: -S (同⼀seed值可重复事件序列,⽅便复现问题。

seed值由测试者⾃由指定)⽤于指定伪随机数⽣成器的seed值,如果值相同则2次测试所产⽣的事件序列也⼀样。

1.adb shell monkey -p com.moonbasa -s 188 1002.adb shell monkey -p com.moonbasa -s 188 1001,2两次测试的效果是相同的,因为模拟的⽤户操作序列是⼀样的。

●参数: -V⽤于指定反馈信息级别(⽇志详细程度),总共分为三个级别-V Level0 缺省值,仅提供启动提⽰、测试完成和最终结果等少量信息-V -V Level1 提供较为详细的⽇志,包括每个发送到Activity的事件信息-V -V -V Level2 最详细的⽇志,包括了测试中选中/未选中的Activity信息例:adb shell monkey -p com.moonbasa -v -v 1000.(⽤monkey模拟1000次随机⽤户事件,输出的⽇志级别为Level1)●参数:--throttle <毫秒>⽤于指定⽤户操作(事件)间的时延,单位是毫秒例:adb shell monkey -p com.moonbasa --throttle 3000 1000(⽤monkey模拟1000次随机⽤户事件,事件之间有3秒的延迟)●参数:--randomize -throttle事件间插⼊随机延迟,范围为0到throttle设置的值例:adb shell monkey -p com.moonbasa --throttle 5000 --randomize -throttle 1000(执⾏1000次的monkey随机事件,事件间隔0~5秒)●参数:--pct-{+事件类别}{+事件类别百分⽐}。

Android Monkey 脚本简单快速自动化测试

Android Monkey 脚本简单快速自动化测试
命令格式:adb shell monkey -f <脚本完整路径> <count> 例如:adb shell monkey -f /data/local/tmp/monkeyscript.txt 1000
异常错误收集 1> 正确输出流 2> 错误输出流
>adb shell $monkey -f /data/local/tmp/monkeyscript.txt 1000 1>monkeylog.txt 2>monkeyerror.txt
目录
1 Monkey脚本介绍与环境配置 2 第一个Monkey脚本 3 Monkey 脚本常用API 4 综合例子 5 总结与作业
1
Monkey脚本介绍与环境配置
Monkey 脚本介绍
• Android 的一种稳定性可靠性测试工具,生成伪随机事件序列,执 行对应的动作序列来测试手机。
• Monkey 脚本:自行依据动作序列API,按自己需求定制脚本。
坐标
绝对坐标:是以点O为原点,作为参考点,来定位平面内某一点的具体位置, 表示方法为:A(X,Y);
X轴
坐标原点 (0,0)
Y 轴
Android 坐标系
• 获取指定坐标 • 设置--开发者选项--输入-指针位置 • 开发者选项开启:快速点击5次版本 号
• 备注:通过UIAutomatorViewer获取坐标
#4、输入VPN
Tap(341,178)
UserWait(2000)
DispatchString(VPN)
UserWait(2000)
#5、点击搜索结果 Tap(284,535) UserWait(2000)
保存为MonkeyScript.txt
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MonkeyTalk的自动化测试一、MonkeyTalk 测试的基本使用(1)MonkeyTalk 安装官网下载解压即可使用,是依靠eclipse生成的工具(需要配置好android所需的开发环境)(2)MonkeyTalk 使用A>创建项目1.File >New > Other >2.选择测试APP操作系统3.选择APK的位置(如果改apk未写入测试文件会提示需要写入东西,确认就是了)4.最后就是你的项目名和测试文件名5.我们的项目目录(MonkeyTestTest.mt是测试脚本)B>录制脚本1.连接android设备当我们android设备连接电脑的时候,点击图标,就会再第一列出现connect to XXX,点击就可以连接我们的android设备了。

2.安装,和启动apk安装启动设备上就可以看到我们的apk已经启动了(同时可以看到MonkeyTalk工具栏的录制和执行图标亮了)3.脚本录制和启动1)点击开始录制脚本2)此时操作设备上的项目,MonkeyTalk会自动生成脚本3)点击图标录制结束4)我们关闭APP后启动,点击图标就可以运行脚本了C >测试报告文件当我们运行完成了在项目文件下会生成测试报告(reports文件夹下)在项目文件下我们可以看到多了reports文件夹和screenshots文件夹1.reports文件夹就是包含测试信息文件,1>screenshots文件夹下,就是当前设备运行的截图2>DETAIL-MonkeyTestTest.mt.html APP测试信息每个脚本都包含运行时间、是否运行成功和截图。

2.screenshots文件夹下,就是该项目下设备运行的截图二、基于MonkeyTalk和Ant的自动化测试主要介绍MonkeyTalk单个脚本如何在多个测试环境或设备中运行,现在工具只支持顺序进行,即一个设备运行完再运行另一个设备。

(1)需要安装配置apache-ant先把MonkeyTalk的monkeytalk-ant-1.0.30文件拷贝到apache-ant的lib目录下。

配置环境如下所示:新建变量名为ANT_HOME 值为:apache-ant的目录路径在path中添加apache-ant的bin目录路径aj 地址/tools/ajdt/42/update (2)生成AJ项目(AJ项目的APK可以直接做测试APK)在Eclipse中打开你的Android项目。

1.将您的Android项目转换为的AspectJ如果没有AJ选项可以通过Eclipse自升级安装。

2.将MonkeyTalk-agent.jar复制放到libs文件夹下。

Jar在\monkeytalk\agents\android目录下3.右键单击MonkeyTalk agent.jar> AspectJ的“工具”>“添加到Aspectpath。

4.在AndroidManifest.xml添加两个权限:android.permission.INTERNETandroid.permission.GET_TASKS5.更新项目属性(右键单击项目>“属性”>“Java Build Path中),选择Order and Export选项卡,检查到AspectJ的运行时库旁边的复选框,将其导出:注意:1、如果打包出错将AspectJ进行上移操作。

2、在project 中clean一下重新出包。

(3)在MonkeyTest项目下创建build.xml文件(实际应用中我把安装启动卸载都是通过adb来实现的,并没有写到配置文件中)脚本如下所示:<?xml version="1.0" encoding="UTF-8"?><project name="MonkeyProject"xmlns:monkeytalk="antlib:com.gorillalogic.monkeytalk.ant"><!-- SDK目录 --><property name="sdk.dir" value="D:\adt-bundle-windows-x86-20131030\sdk" /> <!-- APP路径(该apk为aj项目中的apk) --><property name="instrumentedApp" value="d:\MonkeyTest.apk" /><!-- 包名 --><property name="packageName" value="com.example.monkeytest" /><!-- 启动Activity --><property name="activityName" value="MainActivity" /><!-- 目标项目 --><target name="MonkeyProject"><!-- 安装APP --><monkeytalk:app action="install"binary="${instrumentedApp}"androidSdk="${sdk.dir}"<!-- 设备序列号 -->deviceSerial="0123456789ABCDEF"verbose="true" /><!-- 启动APP --><monkeytalk:app action="launch"packageName="${packageName}"activityName="${activityName}"deviceSerial="0123456789ABCDEF"androidSdk="${sdk.dir}"verbose="true" /><!-- 运行脚本--><monkeytalk:run agent="AndroidEmulator"<!-- 端口号依次递增 -->port="9006"adb="D:\adt-bundle-windows-x86-20131030\sdk\platform-tools/adb.exe"script="${basedir}/MonkeyProjectTest.mt"<!-- 测试信息存放路径 -->reportdir="${basedir}/reports1"adbSerial="0123456789ABCDEF"adbLocalPort="9006"adbRemotePort="16862"thinktime="1000"timeout="5000"verbose="true"<!-- 截屏 -->screenshotOnError="true"screenshots="true" /><!-- APP卸载 --><monkeytalk:app action="uninstall"packageName="${packageName}"androidSdk="${sdk.dir}"deviceSerial="0123456789ABCDEF"verbose="true" /></target></project>运行脚本需要通过cmd命令执行在MonkeyTest(项目文件)工程目录下输入:ant MonkeyTest如下图所示:Microsoft Windows [版本6.1.7601]版权所有(c) 2009 Microsoft Corporation。

保留所有权利。

C:\Users\Administrator>cd C:\Users\Administrator\monkeytalk\workspace\MonkeyTestC:\Users\Administrator\monkeytalk\workspace\MonkeyTest>ant MonkeyTest(4)关于ant和eclipse打包问题,附上官网论坛解决方式(/content/building-android-project-ant-monkeytalk)有时我们发现eclipse打包出来的东西是可以连接测试的,而通过ant 打包却不能,这是因为我们打包没有加入aspectj,1.我们去官网下载aspectj后点击jar文件安装,2.配置环境变量3.拷贝MonkeyTalk下的sample下demo1项目中的custom_rules.xml文件到项目的目录下4.打包命令改成ant clean debug -Dsdk.dir=D:/adt-bundle-windows-x86-20131030/sdk -Daspectj.dir=C:/aspectj1.8 (5)自动执行测试我将自动执行的操作全部写到了auto.java 文件中了,我们只需要运行auto.java就可以执行操作了(代码我都加了注释)。

附1.打包DOS命令<--! 打包库文件-->cd D:\gitproject\AndroidDTStandApp\libs\aFileChooserandroid update lib-project -p . -t android-19cd D:\gitproject\AndroidDTStandApp\libs\PullToRefreshLibraryandroid update lib-project -p . -t android-19cd D:\gitproject\AndroidDTStandApp\libs\SlidingMenuLibrary\libraryandroid update lib-project -p . -t android-19<--! 打包项目-->cd D:\gitproject\AndroidDTStandApp\code\DT_Android_Standardandroid update project -p . -t android-19ant clean debug -Dsdk.dir=D:/adt-bundle-windows-x86-20131030/sdk -Daspectj.dir=C:/aspectj1.8 ant release附2. 执行测试脚本adb devices 查看连接设备安装apk到指定设备上adb -s 0123456789ABCDEF install d:/project.apk启动应用adb -s 0123456789ABCDEF shell am start -n com.dingtai.standard/.StartPageActivityadb -s 20F3A3BED182 install d:/project.apkadb -s 20F3A3BED182 shell am start -n com.dingtai.standard/.StartPageActivity进入MonkeyTalk项目目录cd C:\Users\Administrator\monkeytalk\workspace\MonkeyProject运行测试脚本ant MonkeyProject附3.(1)build.bat文件,用于打包APK,调用antX.bat(2)Auto.bat文件,运行自动测试脚本(3)Auto.java文件,用于自动执行打包APK,获取设备,安装APK,修改build.xml文件中的设备序列号,执行测试脚本(个个设备的运行信息保存再设备序列号文件名下)。

相关文档
最新文档