adbMonkey

合集下载

monkey工具介绍及用法

monkey工具介绍及用法

monkey⼯具介绍及⽤法monkey是android 系统⾃带的⼀个命令⾏⼯具,可以向被测应⽤程序发送伪随机的⽤户事件流(如按键、触屏、滑动等操作),实现对应⽤程序进⾏测试的⽬的。

monkey测试也叫猴⼦测试,是指测试时可以像好奇的猴⼦⼀样,不停的对应⽤程序进⾏随机操作,以便验证应⽤程序的稳定性和健壮性。

因此,monkey测试是软件稳定性,健壮性的测试⼯具下⾯是monkey提供的⼀些参数:参数:事件相关参数表:-s <seed> 这个参数是伪随机数⽣成器的种⼦值,如果⽤相同的随机种⼦值再次运⾏相同的monkey命令时,前、后两次执⾏的操作事件序列相同,也就是相同的操作。

--throttle <milliseconds> 这个参数是设定在两个事件之间插⼊⼀个固定延时,它可以减缓Monkey的执⾏速度。

如果您不指定选项,Monkey将不会被延迟,事件将尽可能快地⽣产和发送消息。

--pct-touch <percent> 这个参数是设定触屏事件⽣产的百分⽐,触屏事件是⼀个有⼿指按下、抬起事件的操作。

--pct-motion <percent> 这个参数是设定滑动事件⽣成的百分⽐,滑动事件是⼀个先在某⼀个位置⼿指按下,滑动⼀段距离后再抬起⼿势的操作。

--pct-trackball <percent> 这个参数是设定轨迹球事件⽣成的百分⽐,轨迹球事件是包含⼀系列随机移动和单击事件的操作。

--pct-nav <percent> 这个参数是设置基本的导航事件的百分⽐,基本导航事件的模拟⽅向性设置输⼊向上、向下、向左、向右的操作。

--pct-majornav <percent> 这个参数是设定主要导航事件的百分⽐,主要导航事件通常是导致UI产⽣回馈事件,如:单击BACK键,单击MENU键。

--pct-syskeys <percent> 这个参数是设定系统按键事件的百分⽐,系统按键是指这些按键通常被保留,由系统使⽤,如HOME,BACK,拨号,挂断及⾳量控制键。

Android压力测试工具Monkey简介

Android压力测试工具Monkey简介

Android压⼒测试⼯具Monkey简介测试步骤:1.安装ADB2.连接被测⼿机和电脑3.打开CMD命令⾏4.输⼊monkey命令adb shell monkey -p --pct-touch 30 --ignore-crashes --ignore-timeouts--throttle 250 -s 2 -v -v -v 5000000⼀.monkey测试命令有哪些选项?1:常⽤选项--help:打印帮助信息-v:指定打印信息的详细级别,⼀个 -v增加⼀个级别,默认级别为 0 。

-v -v -v 为最详细⽇志。

2:事件选项-s:指定产⽣随机事件种⼦值,相同的种⼦值产⽣相同的事件序列。

如: -s 200--throttle:每个事件结束后的间隔时间——降低系统的压⼒(如不指定,系统会尽快的发送事件序列)。

如:--throttle 100--pct-touch:指定触摸事件的百分⽐,如:--pct-touch 5% ,相关的还有以下option:--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 、startCall 、 endCall 、 volumeControl)--pct-appswitch <percent> (activity之间的切换)--pct-anyevent <percent>(任意事件)3:约束选项-p:指定有效的package(如不指定,则对系统中所有package有效),⼀个-p 对应⼀个有效package,如:-p com.ckt -p com.ckt.asura;-c:activity必须⾄少包含⼀个指定的category,才能被启动,否则启动不了;4:调试选项--dbg-no-events:初始化启动的activity,但是不产⽣任何事件。

monkey常用命令详解

monkey常用命令详解

monkey常用命令详解monkey是一款常用的压力测试工具,用于模拟多个并发用户对系统进行压力测试。

本文将详细介绍monkey的常用命令及其功能。

1. monkey的基本命令monkey的基本命令是最常用的命令之一,它用于启动monkey的工作。

可以通过以下命令来启动monkey:```adb shell monkey [options] <event-count>```其中,`event-count`表示要执行的事件数量,可以根据需要进行调整。

而`options`是一些可选参数,用于指定monkey的具体行为。

2. monkey的事件类型在monkey中,有许多不同类型的事件可以执行。

以下是一些常见的事件类型及其对应的命令:- 点击事件(Tap):用于模拟用户点击屏幕上的某个位置,可以使用`--pct-touch`参数指定触摸事件的百分比。

```adb shell monkey --pct-touch <percentage> <event-count>```- 滑动事件(Swipe):用于模拟用户滑动屏幕的操作,可以使用`--pct-motion`参数指定滑动事件的百分比。

```adb shell monkey --pct-motion <percentage> <event-count>```- 按键事件(Key):用于模拟用户按键的操作,可以使用`--pct-keyevent`参数指定按键事件的百分比。

```adb shell monkey --pct-keyevent <percentage> <event-count>```- 启动应用(Launch):用于模拟用户启动应用的操作,可以使用`--pct-appswitch`参数指定启动应用的百分比。

```adb shell monkey --pct-appswitch <percentage> <event-count>```3. monkey的其他常用命令除了基本命令和事件类型外,monkey还提供了一些其他常用的命令,用于进一步控制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测试时怎样直接连手机?

Monkey测试时怎样直接连手机?
Android需要的sdk终于配置安装好了,可是怎样才能让其直接在手机上操作呢?
采用如下方式解决:
1.将手机设置为调试模式,开发者选项->usb调试选上
2.在电脑上安装一豌豆荚,用数据线连接电脑,此时豌豆荚会自动安装驱动,安装好后豌豆荚就可以自动连接手机了
3.用adb命令测试是否连接设备了
adb devices
若出现找不到该命令,则,可能是没有配置环境变量
需要在我的电脑->属性->高级环境设置->环境变量,
在PATH下加入以下目录,则可以使用adb命令
D:\work\tool\adt-bundle-windows-x86-
20130917\sdk\platform-tools;D:\work\tool\adt-bundle-windows-x86-20130917\sdk\tools。

adb命令logcat日志抓取与monkey

adb命令logcat日志抓取与monkey

adb命令logcat⽇志抓取与monkey ⼀.logcat抓log⽅法:adb logcat命令,可以加条件过滤1.安装SDK(参考android sdk环境安装)2.使⽤数据线链接⼿机,在⼿机助⼿的sdcard中建⽴⼀个1.log的⽂件或在抓⽇志时直接导出到电脑位置3.程序运⾏cmd,进⼊到含有adb.exe⽬录4.输⼊adb devices 查看设备是否连上5.输⼊抓取命令:存放到⼿机adb logcat -s *:E > /mmt/sdcard/1.log存放到PCadb logcat -s '*:E' > d:/1.log6.使⽤⼿机打开app操作崩溃⼀次(如果想中途停⽌按下ctrl+c)7.查看⽇志抓取⽂件,分不清楚是那个时间段所造成的后果8.加⼊命令:-v time 就会显⽰出时间9.输⼊命令adb logcat -v time -s *:E > /mmt/sdcard/1.log(eg:adb logcat -v time -s appname:E>d:/1.log)过滤⽇志级别优先级是下⾯的字符,顺序是从低到⾼:V — 明细 verbose(最低优先级)D — 调试 debugI — 信息 infoW — 警告 warnE — 错误 errorF — 严重错误 fatalS — ⽆记载 silent⽤法:使⽤命令, 显⽰10条 Error 以上级别的⽇志:adb logcat 10 *:E使⽤命令, 显⽰全部Erroradb logcat *:E输出指定App⽇志adb logcat <your package name>:<log level> *:Sadb logcat -v time -s app包名:E>d:/1.loglog过滤器使⽤( adb logcat tag:priprity)过滤器表达式的格式是tag:priority ... ,其中tag是标记(可以是具体的,*表⽰所有), priority是最⼩的优先级,可以是组合adblogcat ActivityManager:I MyApp:D *:Sadblogcat * :W -----所有优先级⼤于等于“warning”的⽇志adblogcat * :E -----所有优先级⼤于等于“error”的⽇志四、log输出-log控制⽇志格式 adb logcat -v 格式brief — 显⽰优先级/标记和原始进程的PID (默认格式)process — 仅显⽰进程PIDtag — 仅显⽰优先级/标记thread — 仅显⽰进程:线程和优先级/标记raw — 显⽰原始的⽇志信息,没有其他的元数据字段time — 显⽰⽇期,调⽤时间,优先级/标记,PIDlong —显⽰所有的元数据字段并且⽤空⾏分隔消息内容eg:adb logcat -v thread五.log输出-附加缓冲区:adb logcat -bradio — 查看包含在⽆线/电话相关的缓冲区消息events — 查看事件相关的消息main — 查看主缓冲区 (默认缓冲区)adb logcat -b radio什么也不加代表默认缓冲六.log输出-log选项列表-b 指定要查看的⽇志缓冲区,可以是system,events ,radio,main . 默认值是system和main 。

adb monkey原理

adb monkey原理

adb monkey原理
ADB Monkey的原理是利用Android系统中的Monkey工具,通过模拟用户随机操作来对应用程序进行压力测试。

ADB(Android Debug Bridge)是一个命令行工具,它允许开发者与设备进行通信,可以对设备执行各种操作,如安装和调试应用等。

Monkey工具是Android SDK中的一个命令行工具,它可以模拟用户随机点击、滑动、按键等操作,以检测应用程序在异常情况下的表现。

Monkey可以向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等,以测试正在开发的应用程序的稳定性、健壮性和性能。

adbshellmonkey进行压力测试

adbshellmonkey进行压力测试

adbshellmonkey进⾏压⼒测试⼀、Monkey压⼒测试的原理1. adb shell monkey的运⾏机制实际上是执⾏⼿机中/system/bin/monkey这个脚本;2. Monkey事件注⼊机制Monkey注⼊系统事件是通过 framework 层的 hidenApi (如:activemanager,inputmanager,windowmanager) 获取系统服务。

Monkey中有11种事件,这些事件在MonkeyEventSource中对事件之间的⽐例进⾏设置。

Monkey事件根据类型⽐例⽣成事件队列,循环查找事件。

a.触摸事件(inputmanager):包括屏幕以及物理键的触摸,滑动,点击事件。

b.Activity事件(activemanager):是指我们调⽤Android系统组件的事件。

c.Window事件(windowmanager):是指操作Window的事件,例如转屏。

3.Monkey核⼼类a. Monkey.java, 程序的⼊⼝,根据参数选择合适的MonkeyEventSource,并适时触发MonkeyEvent;b. MonkeyEventSource.java, MonkeyEvent的⼯⼚,是⼀个接⼝;c. MonkeyEvent.java,各种事件的具体实现。

⼆、查找⼿机上的安装包包名1.adb shell pm list package 查看⼿机上所有的安装包2.adb shell pm list package -3 查看第三⽅安装包3.adb shell pm list packages -s 查看系统的包4.adb shell pm list packages -e “要搜索的内容” 查看启动包中搜索的包5.adb shell dumpsys window | findstr mCurrentFocus 获取当前打开的APP包名(前⾯的为包名,斜杠后⾯的是当前启动的acivity)三、Monkey 命令基本参数的介绍注意:所有的参数都需要放在monkey和设置的次数之间,参数的顺序可以调整;若带了-p ,-p必须放在monkey之后,参数必须在-p和count之间:adb shell monkey -p 包名 --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v –s 1540475754297 1001.-p ,此命令⽤于指定包,若不指定则在整个系统中执⾏a.指定⼀个包执⾏10次:adb shell monkey -p 包名 10 ,如下出现事件执⾏次数和所耗时间,则算是执⾏成功;b.指定多个包执⾏10次:adb shell monkey -p 包名 –p 包名 10,2.-v ,⽤于反馈⽇志的详细程度级别Level 0 : adb shell monkey -p 包名 -v 10 // 默认级别,仅提供启动、测试完成和最终结果等少量信息Level 1 : adb shell monkey -p 包名 -v -v 10 // 提供较为详细的⽇志,包括每个发送到Activity的事件信息Level 2 : adb shell monkey -p 包名 -v -v -v 10 // 提供最详细的⽇志,包括了测试中选中/未选中的Activity信息3.-s ,⽤于指定伪随机数⽣成器的seed值命令:adb shell monkey -p 包名 –s seed值执⾏次数如果seed值相同,则两次Monkey测试所产⽣的事件序列也相同的,⽰例:测试1:adb shell monkey -p com.kugou.android –s 1540475754297 100测试2:adb shell monkey -p com.kugou.android –s 1540475754297 1004.--throttle ,⽤于指定⽤户事件的操作间隔时延,单位是毫秒如果不指定这个参数,monkey会尽可能快的⽣成和发送消息命令:adb shell monkey -p 包名 --throttle 3000 1005.--ignore-timeouts ,忽略超时错误6.--ignore-crashes ,忽略crash7.--ignore-security-exceptions 忽略许可错误8.--monitor-native-crashes,⽤于指定是否监视并报告应⽤程序发⽣崩溃的本地代码9.--pct-touch ,触摸事件命令:adb shell monkey -p 包名 -v -v -v --pct-touch 100 20 //执⾏20次100%都为触摸事件这⾥触摸事件为100%,则没有其他事件10.指定⽇志存放⽬录:a、存放在电脑上(如下指定为D⽬录下命名为AAlog.txt,为了⽅便查找,然后就去电脑上该⽬录下查找,当设置路径后,⽇志将不会在命令⾏窗⼝上显⽰出来)adb shell monkey -p 包名 -v -v -v 200>D:AAlog.txtb、存放在⼿机上(可以断开电脑)1、进⼊Android系统adb shell2、执⾏Monkey命令monkey -p com.kugou.android --pct-touch 25 -v -v 200 1>/mnt/sdcard/monkey.txt 2>/mnt/sdcard/error.txt &0 :标准输⼊1 :标准输出2 :标准错误输出&:后台运⾏>:重定向,会覆盖原来⽂件⾥的内容>>:重定向,追加到原来⽂件末尾四、⽇志分析1、查找出差步骤:a、找到monkey⾥哪个地⽅出错查看Monkey执⾏的是哪⼀个Activity,在switch后⾯找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

adb命令结合monkey的简单使用

adb命令结合monkey的简单使用

adb命令结合monkey的简单使⽤⼀,adb简介:adb全称(Android Debug Bridge),它是⼀个通⽤命令⾏⼯具,它可以做为Android与PC端连接的⼀个桥梁,所以adb⼜称为Android调试桥,⽤户可以通过adb在电脑上对Android设备进⾏全⾯操作,⽐如安装和调试应⽤,操作⽂件的传输等。

也可以查看这位⼤佬的⽂章,介绍的更详细:https:///p/0c0036b726ee⼆,monkey简介:Monkey是Android SDK提供的⼀个命令⾏⼯具,可以简单⽅便的发送伪随机的⽤户事件流,对Android APP做压⼒(稳定性)测试。

主要是为了测试app是否存在⽆响应和崩溃的情况。

三,准备条件:●下载安装adb:●配置环境变量:解压安装包后,把解压后的路径放到系统变量⾥去(Path)四,连接:可以通过模拟器连接,也可以通过数据线连接。

通过数据线连接时,⼿机进⼊“开发者选项”,打开“usb调试”打开cmd窗⼝,或者按shift键同时⿏标单击右键,打开”Windows power shell“也可进⼊命令窗⼝。

五,adb 命令介绍:adb version:查看版本号adb devices:查看已连接的⼿机对应的 ”代号“ 。

注意确认⼿机是否弹窗确认连接。

adb -d:同时连了usb,开了模拟器;连接当前唯⼀通过usb连接的⼀个安卓设备。

adb -e shell :指定当前连接到此电脑的唯⼀的⼀个模拟器adb -s (⼿机代号/模拟器端⼝号) shell:当电脑有插多台⼿机或模拟器时,指定⼀个”代号“进⾏连接adb shell :当电脑连接⼀台⼿机或模拟器时,默认连接该设备。

(处于当前安卓系统内),⼿机记得确认下连接。

shell:”壳“,当前的命令跟系统的内核交互的⼀个中介。

exit:退出,处于Windows⾥cmd⾥。

adb kill-server :杀死当前adb服务,⼀般不要⽤;如连不上时,杀掉重启下。

Monkey使用基本简介(adb环境搭建)

Monkey使用基本简介(adb环境搭建)

1,Android Monkey Test 介绍Monkey是一个命令行工具,您可以在任何模拟器实例或设备上运行。

它发送用户事件的伪随机流进系统,它作为对正在开发的应用软件压力测试。

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

参考网址:/tools/help/monkey.html2,准备(前提:安卓开发环境已经搭建完成)首先要有被测对象:机器以及应用程序,机器可以是模拟器也可以是真机,最好获得机器的root权限1)查看设备号cmd中 adb devices可以查看到有设备连接到PC端PS:此处就遇到一个问题,如果有多个机器时怎么明确对象?选择机器,只需要adb -s device名称命令即可针对所选机器进行操作比如:2)查看被测试的应用程序包名切换到data/data路径,然后列出所有应用,标记所要跑的应用包名即可(此方法需要设备的root权限,若是设备没有root权限,那么用打开android虚拟机即可,因为虚拟机是完全root的)还有一种方法能看到安装程序的package name在cmd里输入:adb shell pm list packages此命令能列出当前设备的所有已安装程序的包名3,基本命令格式基本语法如下:在cmd下输入#adbshellmonkey [options]如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:#adb shell monkey -p -v 500对指定安装包发送500个随机事件,相隔3秒# adb shell monkey -p --throttle 3000 500命令参数介绍(常规)(1)参数:-help列出简单的用法。

monkey测试方法

monkey测试方法

Monkey测试前的准备工作:1.准备一张存储空间足够的SD卡,以防log被写满,并拷贝一些图片,MP3,视频文件等2.设置屏幕延时为最大值(settings->Display->Screen timeout->30 minutes or never)3.打开USB调试模式,确保adb可以连接4.使用ENG版本,且移除第三方应用及GMS(Google mobile service)应用包5.执行monkey测试前,一定要确保屏幕解锁6.测试前清除历史LOG7.全程完整录制MTKLogger,并且抓取adb log8.如出现anr,需要抓取/data/anr目录9.记录发生问题的时间点(条件允许的前提下)10.测试高耗掉的模块时,请使用满电的电池进行测试(如camera/gallery,call等)11.准备一张sim卡,插入手机(在测试通话,信息,联系人等模块可能会用到)。

Monkey测试命令:1.对单独模块进行monkey测试:adb shell monkey –v -v –p 模块的包名–-throttle 500 3000002.对整机进行monkey测试:adb shell monkey -s 6516 --throttle 200 --ignore-security-exceptions -v 3000000 Monkey测试结果的判断:1.Monkey测试结果为pass的,LOG信息最后一行会有Monkey finished的字样。

2.Monkey测试结果为fail的,有以下两种情况:A.LOG的最后会有以下提示字样,表示此次monkey测试fail,提供所有log给开发。

如:** Monkey aborted due to error.Events injected: 37511:Sending rotation degree=0, persist=false:Dropped: keys=0 pointers=24 trackballs=0 flips=0 rotations=0## Network stats: elapsed time=4508008ms (0ms mobile, 0ms wifi, 4508008ms not connected)** System appears to have crashed at event 37511 of 300000 using seed 1358091994830B.LOG中无A情况中的错误信息提示,也无Monkey finished字样,但monkey 测试已中断,该问题仍定位为monkey测试fail,需要给开发提供所有的LOG,开发查找calendar_time关键字去定位问题。

monkey性能测试

monkey性能测试

关于monkey 测试
一、adb的安装过程:
a.首先找到adb存放的目录,并且找到安装的路径。

例如我的adb的路径E:\android_chanjian\
android-sdk-windows\platform-tools
b.然后配置环境变量:右键单击”我的电脑“->属性->高级系统
设置->环境变量->系统变量->path->;E:\android_chanjian\
android-sdk-windows\platform-tools(adb的存放的路径)
二、运行monkey测试。

(1.)adb devices(检测设备是否存在)
Adb remount(重新挂起设备)
(2.)adb shell
进入adb的shell目录
(3.)#cd /data/data
(4.)#ls(此时可以看见许多已经安装的文件了)
(5.)在此进入命令行”cmd”,然后输入:
Adb shell monkey -p ***(包名称) -v 2000000(二百万次)
> E:\文件夹名\*****(包名称).log
此时就可以是实现monkey测试了(测试硬件的性能)。

注释:以下是杨兴达同学分给我的文档,以备对比。

cmd 进入终端命令行:
adb shell 提示框为
root@android:/#
②输入cd /data/data
进入到该设备的安装目录
然后ls 显示已经安装的应用程序
③另起一个CMD命令行
adb shell monkey -p com.android.camera -v 2000000 > D:\1.log。

Monkey和Monkeyrunner

Monkey和Monkeyrunner

心得:Monkey :(压力测试,也就是极限性测试)不断发送伪随机事件,赋予adb 包操作;但缺点是不能自定义事件,扩展性不高。

Monkeyrunner:(功能测试,针对一次性操作)可自定义事件,扩展性高;缺点:暂时不支持中文输入;不适合处理连续的操作,一旦进入应用程,因为drag方法不稳定,跳转就需要用按钮来代替,这样无法模拟用户真实的操作。

UI一但改变,脚本无法使用。

因为基于UI的测试,对所有测试系统的稳定性要求比较高,如果系统或者软件非常容易崩溃,就会终端测试脚本,无法自动化。

在百度寻找资料时,曾看到有人这样比喻两者的区别,说:其实两者除了名称上差不多以外,根本就是两个不同的测试工具;Monkey是运行在设备或模拟器的adb shell 中生成或系统的伪随机事件,而monkeyrunner是在工作站上通过API定义的特定命令和事件控制设备或模拟器;Monkey测试,可针对全局,也可局部,执行简单,效果明显;monkeyrunner配置分为四大类:1.基本配置选项,如设置尝试的事件数量;2.运行约束选项,如设置只对单独的一个包进行测试;3.事件类型和频率;4.调试选项也有人说monkey就像孩子一样什么复杂事情都做不了,只能做简单的事情。

接下来我会记录monkey和monkeyrunner基本使用脚本Monkey1.进入cmd 命令2.cd sdk存放adb路径3.输入sdk\adb存放盘符4.adb shell monkey –p(设置包名,不设置为默认) com.luckir.homevwapp –v(默认保存信息) 500 (发送事件数量)5.回车就能执行了MonkeyRunner模拟器连接1.进入cmd 命令2.cd sdk\tool路径3.输入sdk\tool存放盘符4.Monkeyrunner5.进入shell命令6.#导入monkeyrunner 自带的三个类注:‘#’如同注释,不执行;区分大小写from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage#连接模拟器设备device = MonkeyRunner.waitForConneciton()#安装apk 注:/ 杠隔开,\杠会报错, 如果已安装可省略此步device.installPackage(‘apk存放路径+.apk’)#进入软件首页,(定义一个Activity事件)#(左边是运行软件名称/右边是软件名称.包名称)device.startActivity(‘com.luckir.homevwapp/com.luckir.homevwapp.Login’)#device.press 的两种方式(出现两种方式是因为后面的版本陆续添加了EasyMonkeyDevice类的原因,后面会讲到此类使用方法及说明#第一种是获取android系统自带控件的事件# 点击OK按钮,注:格式:‘前’随机,‘后’固定device.press(‘KEYCODE_DPAD_CENTER’, ‘DOWN_AND_UP’)#向右按钮device.press(‘KEYCODE_DPAD_RIGHT’,‘DOWN_AND_UP’) # 等(其它事件可在网上搜索查到)#第二种获取软件点击事件,格式如上一样#触摸点击OK按钮device.press(‘KEYCODE_DPAD_CENTER’,MonkeyDevice.DOWN_AND_UP) #触摸点击向右device.press(‘KEYCODE_DPAD_RIGHT’,MonkeyDevice.DOWN_AND_UP)手机连接手机连接只需更改连接设备方式,其它如上面一样#连接手机设备device = MonkeyRunner.waitForConnection(5,‘手机名’)//root过的手机才能执行#手机名获取方式1.如上所示进入adb 环境2.adb devices3.就可以看到如图所示:红圈显示的就是手机名(注:连接时,模拟器和手机缺一不可)EasyMonkeyDevice先下载ase.apk 文件,用adb 安装到模拟器或设备中EasyMonkeyDevice(emd) 类也是android自带类,此类的用法是获取ID来进行操作,此类是用在monkeyrunner 中。

(完整word版)Monkey操作手册

(完整word版)Monkey操作手册

Monkey操作手册一、Monkeya) Monkey是什么?Monkey就是SDK中附带的一个工具。

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

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。

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

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

b) Monkey测试的目的?该工具用于进行压力测试。

然后开发人员结合monkey打印的日志和系统打印的日志,结合测试中出现的问题。

c) Monkey的特征i. Monky测试使用的事件流数据流是随机的,不能进行自定义。

ii. 测试的对象仅为应用程序包,有一定的局限性。

iii. 可对Monkey的对象,事件数量,类型,频率等进行设置。

二、环境搭建a)连接手机: 1 Android需要Root,2 (不必须)安装RE,控制data/data挂载权限工具安装i.JDK安装:详细:JDK安装配置ii.SDK安装:建议拷贝SDK包,解压后配置SDK环境变量或安装详细:SDK 安装配置至此环境安装就结束了三、Monkey:连接真机因为模拟器和真机的巨大差距,建议使用真机做Monke自动化测试,如果没有真机,自行安装虚拟模拟器。

a)在cmd窗口下面输入adb decixes显示出真机连接型号。

如果未出现连接不成功。

连接不成功,可以尝试使用豌豆荚安装手机连接,按照提示对PC和手机操作。

b)连接成功后,在cmd窗口下面输入adb shell进入到手机c)进入手机目录成功,在cmd窗口下面输入adb shell没有获取到权限,使用RE修改data/data挂载可以读写权限或者使用命令获取:使用CD跳转至data/data,输入su获取,再输入ls data/data获取data下目录package四、Monkey命令详解a)标准的monkey 命令[adb shell] monkey [options] <eventcount> , 例如:adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity上面只是一个简单的例子,实际情况中通常会有很多的options选项b)四大类——常用选项、事件选项、约束选项、调试选项1:常用选项:--help:打印帮助信息-v:指定打印信息的详细级别,一个-v增加一个级别,默认级别为0 。

adb shell下的monkey

adb shell下的monkey

1.-p 指定一个或几个包名2.--hprof 生成profiling报告3.--ignore-crashes 发生异常或崩溃时,monkey不停止运行,直到计数完4.--ignore-security-exceptions 发生许可错误时,monkey不停止运行,直到计数完5.--ignore-timeouts 发生超时错误时,monkey不停止运行,直到计数完6.--kill-process-after-error:通知系统停止发生错误的进程7.--monitor-native-crasher:监听并报告系统中本地代码的崩溃事件8.--wait-dbg:停止执行中的monkey直到有调试器与之连接9.-v:用于反馈信息级别.-v 反馈缺省值 -v-v activity的事件信息 -v-v-v测试中所有的activity信息10.-s:指定伪随机数生成器的seed值11.--throttle:指定用户操作间的时延12.--pct:用于指定每种类别事件的数目百分比--pct-touch:触摸事件百分比 --pct-majornav 调整主要导航--pct-nav:调整基本导航事件百分比 --pct-appswitch 调整启动activity --pct-anyevent:调整其它类型事件13.-dbg-no-events:monkey执行初始启动,进入到一个测试activity,不会再进一步生成事件,常与-v或其他约束联合起来经典monkey语句:adb shell monkey --throttle 500 --ignore-crashes --ignore-security-exceptions --ignore-timeouts --ignore-native-crashes --monitor-native-crashes 20000echo d2 38 >/proc/driver/camsensor3。

adbmonkey测试使用及分析

adbmonkey测试使用及分析

adbmonkey测试使⽤及分析1. adb的⽤途adb monkey是⼀款稳定性测试⼯具,通过随机点击屏幕⼀段时间,app不会出现崩溃,⽆响应,能够正常维持运⾏的测试。

是由android系统⾃带应⽤,可以通过adb shell monkey直接使⽤。

2. Monkey命令参数介绍monkey 命令执⾏adb shell monkey-p com.hst.che --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000>D:\android\monkey_log\16v3.txtmonkey的参数说明:-s :伪随机数⽣成器的 seed 值。

如果⽤相同的 seed 值再次运⾏ Monkey ,它将⽣成相同的事件序列。

--throttle :在事件之间插⼊固定延迟。

通过这个选项可以减缓 Monkey 的执⾏速度。

如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成。

-p:如果⽤此参数指定了⼀个或⼏个包,Monkey将只允许系统启动这些包⾥的Activity。

如果你的应⽤程序还需要访问其它包⾥的Activity(如选择取⼀个联系⼈),那些包也需要在此同时指定。

如果不指定任何包,Monkey将允许系统启动全部包⾥的Activity。

要指定多个包,需要使⽤多个 -p选项,每个-p选项只能⽤于⼀个包。

--kill-process-after-error:通常,当Monkey由于⼀个错误⽽停⽌时,出错的应⽤程序将继续处于运⾏状态。

当设置了此选项时,将会通知系统停⽌发⽣错误的进程。

注意,正常的(成功的)结束,并没有停⽌启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。

轻松停止Monkey测试

轻松停止Monkey测试

轻松停止Monkey测试
今天我们来看看如何停止Monkey测试?
什么是Monkey,这里就不再阐释了,你可以把它理解成为一只可爱的猴子,蹦蹦跳跳地帮助我们对程序员进行压力测试。

比如连续点击10000次,如果人为操作,工作量不少,Monkey这只猴子可以轻易帮忙做到。

当我们运行Monkey 命令时:
命令发出之后,手机便开始执行monkey自动化测试了。

Monkey命令具体用法如下图所示:
有次测试人员说monkey自从跑起来后,根本停不下来,除非时间数执行完成,或者在cmd窗口执行adb reboot来进行手机重启操作。

想想有点不可思议。

那么到底有没有简单点的方法来终止monkey测试,答案是肯定的。

下面我们用一种笨的办法来尝试结束Monkey测试。

首先,我们运行adb shell,然后输入如下命令:
我们可以看到,有monkey进程在后台运行,id为29731,然后我们可以运行kill命令,来杀死该进程。

执行如下命令:
就好。

我们再执行ps | grep monkey,就会发现没有monkey进程了。

原来其实很简单,
我们就是用kill命令,来杀死monkey进程。

就是这么简单粗暴。

我们来小结一下:。

monkey稳定性测试,常用执行命令和如何结束monkey的执行中进程

monkey稳定性测试,常用执行命令和如何结束monkey的执行中进程

monkey稳定性测试,常⽤执⾏命令和如何结束monkey的执⾏中进程⼀、稳定性命令adb shell monkey -p 包名 -v -v -v -s 111 --throttle 2000 --randomize-throttle --pct-touch 50 --pct-motion 50 --ignore-crashes --ignore-timeouts --ignore-native-crashes --ignore-security-exceptions 1000 > D:\monkey_log.txt-p 表⽰指定被测应⽤程序-v -v -v 表⽰指定⽇志详细程度-s 表⽰执⾏的seed值运⾏同⼀个流程标记⼀样的值次数也要和上次的数值设置⼀样在执⾏命令前app两次的初始停留的页⾯也要保证⼀致--throttle 2000 --randomize-throttle 表⽰执⾏事件和执⾏事件中间,间隔时间执⾏随机时间 0-2000毫⽶=2秒可以直有--throttle 2000 表⽰事件执⾏间隔2秒可以设置为0--pct-touch 50 表⽰点击事件执⾏占⽐50%--pct-motion 50 表⽰移动,滑动事件执⾏占⽐50%--ignore-crashes 表⽰调试时便于筛选⽤于指定当应⽤程序崩溃时(Force& Close错误),Monkey是否停⽌运⾏。

如果使⽤此参数,即使应⽤程序崩溃,Monkey依然会发送事件,直到事件计数完成--ignore-timeouts (⽆响应ANR)表⽰调试时便于筛选⽤于指定当应⽤程序发⽣ANR(Application No Responding)错误时,Monkey是否停⽌运⾏。

如果使⽤此参数,即使应⽤程序发⽣ANR错误,Monkey依然会发送事件,直到事件计数完成--ignore-native-crashes (许可证书崩溃)表⽰调试时便于筛选⽤于指定当应⽤程序发⽣许可错误时(如证书许可,⽹络许可等),Monkey是否停⽌运⾏。

稳定性测试(monkey)

稳定性测试(monkey)

稳定性测试(monkey)Monkey是Android SDK提供的⼀个命令⾏⼯具,可以简单⽅便的发送伪随机的⽤户事件流,对Android APP做压⼒(稳定性)测试。

主要是为了测试app是否存在⽆响应和崩溃的情况。

⼀、环境搭建 只要按照配置Android SDK环境和环境变量即可。

⼆、Monkey的使⽤1、进⼊adb shell 环境 在windows环境中,进⼊DOS界⾯,在界⾯中,输⼊adb shell即可进⼊adb shell环境(注意:adb shell服务使⽤的5037的端⼝,如果此端⼝被其他进程占⽤时,将不能正常启动adb shell,问题处理⽅法见:)如: 表⽰adb shell启动成功,shell@****:/$中,****表⽰设备id。

$:表⽰普通⽤户;#表⽰root⽤户。

2、在adb shell环境下输⼊monkey的相应命令即可。

如:3、查看需要测试的包名 如果有root权限,可以进⼊/data/data/下使⽤ls/ls-a查看(不能使⽤ll) 如果⽆root权限,可以使⽤:pm list packages查看 (需要控制monkey执⾏的时间,可以通过设置执⾏时长/事件发送延时,计算出需要执⾏的次数。

如:想要monkey运⾏24⼩时,每100毫秒发送⼀个事件。

24*60*60*1000/100=864000(次) monkey -p *** --ignore-crashes --ignore-timeoutss --throttle 100 864000 表⽰:此次monkey将会运⾏24⼩时三、Monkey的命令参数详细说明 monkey的命令参数分为: 基础参数:-v 、-s 、-p 、--throttle等 调试选项:--ignore-crashes等 事件类型:--pct-touch等(⼀)基础参数1、最简单的monkey命令(monkey 100)表⽰:在设备上,针对整个系统发送100个伪随机事件。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档