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,拨号,挂断及⾳量控制键。
MonkeyTest
Monkey Test1.环境搭建1.1 软硬件环境开发机:X86 PC Linux (推荐ubuntu10.04及以上)测试机:P1015 Gingerbread1.2建立连接通过network连接:Step1:将P1015接上网线。
Step2:进入Android Debug模式,修改init.rc文件修改eths service,在init.rc末尾。
如下service start_eths /system/bin/ifconfig eth0 10.66.3.222oneshotdisabled10.66.3.222:IP地址根据各自的网络环境设定Android Debug模式:我们Port的Gingerbread,启动的时候可以进入debug模式Step3:exit 退出debug,启动androidStep4:进入android命令行模式alt + F1, 查看network信息netcfg,确保网络被开启eth0 UP 10.66.3.222 255.0.0.0 0x00001043Step5:如果网络未被开启,请执行netcfg eth0 up然后repeat第四步,确保android能连上网Step6:在ubuntu在输入export ADBHOST = 10.66.3.222Step7:在ubuntu在输入adb devices查看连接状态List of devices attachedemulator-5554 device当然也有其他连接方式,可以参看网络资源。
采用两台device,测试端和被测端的目的是:1)可以同时查看UI变化和Log的输出2)防止android 死掉,从而丢失所有的测试信息2. 命令使用Monkey是一个命令行工具,可以运行在仿真器里或实际设备中。
它向系统发送伪随机的使用者事件流,实现对正在开发的应用程序进行压力测试。
Monkey包括许多选项,它们大致分为四大类:基本配置选项,如设置测试的事件数量。
monkey测试结果分析
monkey测试结果分析Monkey测试结果分析⼀. 初步分析⽅法:Monkey测试出现错误后,⼀般的差错步骤为以下⼏步:1、找到是monkey⾥⾯的哪个地⽅出错2、查看Monkey⾥⾯出错前的⼀些事件动作,并⼿动执⾏该动作3、若以上步骤还不能找出,可以使⽤之前执⾏的monkey命令再执⾏⼀遍,注意seed值要⼀样⼀般的测试结果分析:1、 ANR问题:在⽇志中搜索“ANR”2、崩溃问题:在⽇志中搜索“Exception”⼆. 详细分析monkey⽇志:将执⾏Monkey⽣成的log,从⼿机中导出并打开查看该log;在log的最开始都会显⽰Monkey执⾏的seed值、执⾏次数和测试的包名。
1.⾸先我们需要查看Monkey测试中是否出现了ANR或者异常,具体⽅法如上述。
2.然后我们要分析log中的具体信息,⽅法如下:①查看log中第⼀个Switch,主要是查看Monkey执⾏的是那⼀个Activity,譬如下⾯的log中,执⾏的是com.tencent.smtt.SplashActivity,在下⼀个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
:Switch:#Intent;action=android.intent.action.MAIN;category=UNCHER;launchFlags=0x10000000;component= // Allowing start of Intent {act=android.intent.action.MAIN cat=[UNCHER]cmp= } in package com.tencent.smtt ②在下⾯的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执⾏了⼀个单击的操作;Sleeping for 500 milliseconds这句log是执⾏Monkey测试时,throttle设定的间隔时间,每出现⼀次,就代表⼀个事件。
Monkey测试详解
Monkey测试详解概念:monkey test,也有⼈叫做搞怪测试,⼀般指⽤毫⽆规律的指令或操作去测试被测系统,观察被测系统的稳定性和容错性。
这种测试⽅式在产品周期中的早期阶段会找到很多很好的bug,为⽤户节省不少的时间。
介绍:Monkey是Android系统⾃带⼀个命令⾏⼯具,可以运⾏在模拟器⾥或者真实设备中运⾏。
monkey向系统发送伪随机的⽤户事件流,实现对正在开发的应⽤程序进⾏压⼒测试。
monkey包括很多选项,⼤致四⼤类:1.基本配置选项,如设置尝试的事件数量。
2.运⾏约束选项,如设置只对单独的⼀个包进⾏测试。
3.事件类型和频率。
4.调试选项Monkey 命令启动⽅式:a. 可以通过PC机CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试b. 在PC上adb shell 进⼊Android系统,通过执⾏monkey {+命令参数} 来进⾏Monkey 测试c. 在Android机或者模拟器上直接执⾏monkey 命令,可以在Android机上安装Android终端模拟器monkey命令特性:不可能使⽤monkey来指定做⼀样测试,重复做很多次。
因为monkey产⽣的是伪随机的事件流。
但是我们可以通过添加命令选项将操作限制在⼀定的范围内。
⼀、⾸先你要先搭建环境1.先下载jdk具体安装流程请参考:JDK教程2.再下载sdk 具体安装流程请参考:SDK教程⼆、在开发者选项⾥打开⼿机的usb调试,⽤usb数据线连接⼿机,允许电脑连接⼿机。
三、monkey前的准备命令1.windows+R 输⼊cmd进⼊dos命令⾏;2.输⼊adb devices 下⾯出现类似下图的组合你就成功了;3.输⼊ adb shell pm list packages查看⼿机所有的包名,输⼊ adb shell pm list packages -3 查看⼿机上所有的第三⽅包名。
Monkey测试2——Monkey测试策略
Monkey测试2——Monkey测试策略Monkey的测试策略⼀. 分类Monkey测试针对不同的对象和不同的⽬的采⽤不同的测试⽅案,⾸先测试的对象、⽬的及类型如下:测试的类型分为:应⽤程序的稳定性测试和压⼒测试测试对象分为:单⼀apk和apk集合测试的⽬的分为:解决问题的测试(忽略异常的测试)和验收测试(不忽略异常的测试)⼆. 应⽤程序的稳定性测试:1. 针对单个apk(1) 不忽略异常在进⾏单个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-carshes --monitor-native-crashes -v -v -v 15000 >/mnt/sdcard/monkey_test.txt &2. 针对多个apk(1) 不忽略异常例如:monkey --pkg-whitelist-file /data/whitelist.txt--throttle 1000 -s 100 -v -v -v 15000 > /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 -v 15000 > /mnt/sdcard/monkey_test.txt &三. 应⽤程序的压⼒/健壮性测试应⽤程序的压⼒/健壮性测试,其主要是缩短monkey测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运⾏。
monkey测试标准
Monkey测试是一种通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)来对应用程序客户端进行稳定性测试的方法。
其标准如下:
1.测试目的:验证APP的稳定性以及是否会在各种异常场景下出现未知的错误和异常。
2.测试方法:使用Google原生的Monkey测试框架,执行指定参数的测试,并记录运行日志和报
错日志。
3.测试指令:通过adb shell命令执行Monkey测试,并可以指定一系列参数进行更精细的测试。
例如:adb shell monkey -p 包名--pct-touch 16 --pct-motion 16 --pct-trackball 16 --pct-majornav 16 --pct-appswitch 16 --pct-nav 16 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v --throttle 500 9999999 -s 123456。
4.判定标准:关注各种指标,如ANR、CRASH、OOM、Error、Exception、GC等,并根据实
际需求制定相应的通过标准。
此外,Monkey测试的标准可能因应用场景、设备类型和特定需求而有所不同,因此在实际应用中可能需要根据具体情况进行微调。
建议参考行业内的最佳实践或专业机构的指南来完善标准,以提供更加准确和可靠的结果。
Monkey测试方法总结
Monkey测试方法总结Monkey测试是一种随机化黑盒测试方法,它可以在不考虑内部结构和逻辑关系的情况下,对软件系统进行广泛的、自动化的测试。
通过模拟用户的随机操作,如点击、滑动、输入等,来发现潜在的程序错误和系统缺陷。
本文将从Monkey测试的原理、优点、缺点、测试方法及应用场景等方面进行详细介绍。
一、Monkey测试的原理Monkey测试是基于随机触发事件的方法,它的原理是模拟用户的操作行为,通过随机化的方式触发应用程序中的事件,如点击、滑动、输入等,以此来测试系统的稳定性和可靠性。
在Monkey测试中,测试工具会生成随机数,并按照一定的概率分布来触发各种事件,以覆盖尽可能多的应用场景和操作路径。
通过不断地随机触发事件,可以发现潜在的软件缺陷和系统错误,提高软件的稳定性和可靠性。
二、Monkey测试的优点1.自动化:Monkey测试是一种完全自动化的测试方法,测试工具可以自动生成随机事件,并按照一定的概率分布触发,大大减少了测试人员的工作量。
2.广泛性:Monkey测试可以通过随机触发事件来覆盖尽可能多的应用场景和操作路径,从而发现潜在的软件缺陷和系统错误。
3.快速性:Monkey测试可以在较短的时间内完成测试,提高了测试效率。
4.全面性:Monkey测试可以对整个系统进行测试,包括应用程序、系统服务和硬件设备等。
5.可重复性:Monkey测试可以通过设置种子数来保证测试结果的可重复性,便于后续的调试和分析。
三、Monkey测试的缺点1.未考虑内部结构和逻辑关系:Monkey测试只模拟用户的随机操作,未考虑应用程序的内部结构和逻辑关系,可能无法发现与具体业务逻辑相关的错误。
2.无需提供测试用例:Monkey测试是一种黑盒测试方法,不需要提供具体的测试用例,但有时可能无法确保测试数据的完整性和正确性。
3.随机性可能导致测试结果不准确:由于Monkey测试是基于随机触发事件的方法,测试结果具有一定的偶然性,可能无法全面覆盖系统的所有功能和路径。
monkey使用简要说明
Monkey使用总结1.OverviewMonkey是运行在模拟器或设备上的一个程序,用来伪随机地模拟点击和触摸等用户事件,就如其它许多系统事件一样。
Monkey可以用于对我们开发的应用程序进行随机和重复的压力测试。
2.Basic Use可以通过开发机器上的命令行或脚本(shell脚本)来启动Monkey。
由于Monkey运行在模拟器/设备环境中,所以必须用其环境中的shell来进行启动。
可以通过在每条命令前加上adb shell来达到目的,也可以进入Shell后直接输入Monkey命令。
基本语法如下:$ adb shell monkey [option] <event-count>如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。
下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:$ adb shell monkey -p -v 500使用脚本:#!/bin/bashMonkey –p com.android.calendar –s 1 –v –v 100 >/data/logmand Options–help列出简单的用法。
-v命令行的每一个-v将增加反馈信息的级别。
Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。
Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。
Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。
adb shell monkey -p 500adb shell monkey -p -v 500adb shell monkey -p -v –v 500-s <seed>伪随机数生成器的seed值。
如果用相同的seed值再次运行Monkey,它将生成相同的事件序列。
正是通过这个选项实现随机压力测试的重复性。
车载monkey测试标准
车载monkey测试标准
车载猴子测试标准是用于评估汽车安全性能的一种测试方法。
这种测试通常涉及将猴子置于车辆中,然后在不同速度和碰撞角度
下进行碰撞测试,以评估车辆在事故中对乘客的保护程度。
然而,
随着对动物权益和道德问题的关注增加,车载猴子测试已经受到了
广泛的批评和抵制。
因此,很多汽车制造商已经转向使用计算机模
拟和人体模型等替代方法来进行安全性能测试。
从技术角度来看,车载猴子测试标准需要考虑测试的具体参数,包括碰撞速度、碰撞角度、测试车辆的类型和尺寸等。
此外,还需
要考虑测试过程中对猴子的伤害程度和安全性,以及测试结果的准
确性和可靠性。
从伦理和道德角度来看,车载猴子测试标准引发了对动物权益
的关注。
许多人认为将动物置于危险的测试环境中是不道德的,因
此呼吁停止使用动物进行汽车安全性能测试。
这也促使汽车行业加
速研发和采用替代性的测试方法,以避免对动物造成伤害。
综上所述,车载猴子测试标准是一个复杂的问题,涉及技术、
伦理和道德等多个方面。
随着社会对动物权益和道德问题的关注不
断增加,我们期待看到汽车行业能够加速采用更加人道和科学的测试方法,确保汽车安全性能的准确评估同时尊重动物权益。
Monkey详解
shell, monkey, system, Android, 文件系统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 -pcom.htc.photo.widgets 100* 不指定包:adb shell monkey 100说明:Monkey随机启动APP并发送100个随机事件。
monkey测试结果详细分析
monkey测试结果详细分析一、为什么要用Monkey 测试?简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。
号称最快速有效的方法。
有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug。
而此时猴子就比人更有效了。
简介Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。
它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。
Monkey包括许多选项,它们大致分为四大类:· 基本配置选项,如设置尝试的事件数量。
· 运行约束选项,如设置只对单独的一个包进行测试。
· 事件类型和频率。
· 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。
同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:· 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
· 如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
· 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
二、怎么用的?首先用一个最简单的例子分析://p参数:表示指定测试的程序//v参数:表示查看monkey生成的一些详细的随机的事件名//数字100:表示测试事件数为100monkey -p com.example.android.apis -v -v -v 100结果如下::Monkey: seed=0 count=100:AllowPackage: com.example.android.apis:IncludeCategory: UNCHER:IncludeCategory: android.intent.category.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 测试
一、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。
APP测试--Monkey命令
shell, monkey, system, Android, 文件系统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个随机事件。
Monkey分析
为什么要用Monkey 测试?
简单的说Money就是像猴子一样乱点,为了测试软件 的稳定性,健壮性。号称最快速有效的方法。有时候运行相 同系列的测试,即使是复杂的测试,但是以相同的顺序和路 径,即使一遍又一遍地运行也很少机会能发现内存和资源使 用的bug。而此时猴子就比人更有效了。
Monkey测试实例
二、真实设备
1、启动eclipse,打开查看log的页面 2、设备连接电脑安装驱动
三、运行
1、在命令提示符中输入adb devices 查看有无连接的设备 (转到 cd e: \test\sdk\platform-tools目录下输入adb devices命令) 2、确认有设备连接,进入shell界面输入adb shell 3、查看设备中的安装包ls mnt/sdcard 4、输入monkey命令monkey -p com.android.yunhao -500
Monkey约束限制命令
-p<allowed-package-name> 如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的 Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个 联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系 统启动全部包里的Activity。要指定多个包,需要使用多个-p选项,每个-p 选项只能用于一个包。 -c<main-category> 如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别 中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类 别中列出的Activity:Intent.CATEGORY_LAUNCHER或 Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c 选项只能用于一个类别。
monkey工具的使用
monkey工具的使用
Monkey是一个Android上的压力测试工具,可以模拟用户交互行为,如滑动屏幕、点击按钮、输入文字等,从而测试应用程序的稳定性和性能
表现。
以下是使用Monkey工具的步骤:
1. 准备工作:将Monkey工具添加到系统路径中,并在设备或模拟器
上开启USB调试模式。
2. 编写Monkey命令:打开终端或命令提示符窗口,输入如下命令:
$ adb shell monkey [options] <event-count>。
其中,options是可选的参数,event-count是要执行的事件数量。
3. 运行Monkey命令:在终端或命令提示符窗口中输入上一步编写的Monkey命令,并等待Monkey工具执行。
4. 分析Monkey日志:在执行完Monkey命令后,可以通过查看日志
文件来分析应用程序的稳定性和性能表现。
需要注意的是,Monkey工具是一种压力测试工具,如果在测试过程
中出现应用程序崩溃、界面卡顿等问题,可以通过分析日志文件找出具体
原因,并进行修复。
APP--Monkey压力测试
APP--Monkey压⼒测试adbadb是安卓调试桥是⼀种功能多样的命令⾏⼯具,可以与设备进⾏通话monkey压⼒测试原理:通过向系统发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、滑动Trackball、⼿势输⼊等操作),来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常。
⼀般在功能测试完成后进⾏Monkey测试⽤于发现App测试中的问题(如ANR(Application Not Responding),响应延时以及CRASH,⾮正常退出)Monkey还对测试中的系统进⾏监测,对下列三种情况进⾏特殊处理(⾃动停⽌):(1)如果限定了Monkey运⾏在⼀个或⼏个特定的包上,那么它会监测试图转到其它包的操作,并对其进⾏阻⽌;(2)如果应⽤程序崩溃或接收到任何失控异常,Monkey将停⽌并报错;(3)如果应⽤程序产⽣了应⽤程序不响应(application not responding)的错误,Monkey将会停⽌并报错;monkey命令常⽤的选项主要有四个,⼀个是-v 、-s、--throtlle、-p,-v的话⽤于详细显⽰命令执⾏过程 -p:获取包名(不指定,随机) -v:查⽇志 v越多越详细⼀般来说展⽰在cmd⾥⾯(也可以⽣成log报告来查看) -throttle:延时器相当于jmeter的思考时间,以毫秒为单位(mm) -s:指定mokey命令执⾏的序列号,主要作⽤就是处理复现问题seed:意思是把事件流做记录,来进⾏回归测试下次跑的时候加 -s seed当我们程序模拟100次随机⽤户事件事件的百分⽐(Event percentages):如果没有设置,就会随机分配调整触摸事件的百分⽐例如:adb shell monkey -p com.sf.DarkCalculator --pct-touch 10 -v 1000Event percentages(事件百分⽐):0:点击事件百分⽐,即参数--pct-touch1:滑动事件百分⽐,即参数--pct-motion2:缩放事件百分⽐,即参数--pct-pinchzoom3:轨迹球事件百分⽐,即参数--pct-trackball4:屏幕旋转事件百分⽐,即参数--pct-rotation5:基本导航事件百分⽐,即参数--pct-nav6:主要导航事件百分⽐,即参数--pct-majornav7:系统按键事件百分⽐,即参数--pct-syskeys8:Activity启动事件百分⽐,即参数--pct-appswitch9:键盘唤出隐藏事件百分⽐,即参数--pct-flip10:其他事件百分⽐,即参数--pct-anyeventmonkey的调式参数,⽐较常⽤的就是两个调式参数⼀个是:忽略异常退出(--ignore-crashes)、忽略响应延迟(--ignore-timeouts)monkey的参考命令adb shell monkey -p com.tencent.XXX(替换包名) --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes -v -v -v 1000000>d:\monkeyScreenLog.log例⼦:adb shell monkey -p com.android.browser --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes -v -v 100000>e:\monkeyScreenLog.log我们压测10万个⽹页请求可能会碰到⼀些问题例如 carsh(崩溃,⽹页⽆法打开) ANR(⽆响应,或者响应很慢)⼀般来说app响应的时间在⼀秒内可以通过上⼀版本来进⾏评估也可以参考同⾏来做竞品或者根据需求或者领导要求安卓启动时间测试什么是启动的时间:从点击应⽤的启动图标开始创建出⼀个新的进程直到我们看到了界⾯的第⼀帧,这段时间就是应⽤的启动时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
monkey测试方法总结测试策略:全模块、单模块测试步骤:1、测试前准备:1.PC侧安装adb驱动,使用adb shell命令不报错2.手机设置:锁屏方式设置为无,屏幕亮度建议设成最低(防止电量消耗过大导致关机)3.手机为刚刷的新版本或者进行一次恢复出厂设置备注:或测试前请先删除自行安装的第三方:手机助手、测试工具apk等等4.休眠设成最长时间或不休眠5.设置-开发者选项中勾选不锁定屏幕6.设置手机时间为当前正确时间7.若要测试上网请连接可用wifi或打开数据业务8.测试前需开启aplog*#*#201206#*#*备注:测试前请确保日志功能开启,测试完成后先保存日志adb rootadb remountadb shell rm -rf /data/logs/*作用就是删除以前的旧log工具使用前请确定手机版本为debug版本,PC 的adb命令使用正常附件解压到任意目录,双击InstalllogClient.bat会自动安装logClient客户端并重启手机配置:1. 连接热点360WiFi-6CDC31,连接密码为xdjatest2. 输入密码后勾选下面的高级选项-》将DHCP选项改为静态-》设置IP地址为11.12.112.196至199之间的IP,设置完IP直接点击连接,连接上热点后即配置完毕2、测试执行:先执行命令adb shell再输入如下的命令:全模块:monkey--throttle500--ignore-crashes--ignore-timeouts--ignore-security-exc eptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/st orage/sdcard0/monkey_log.txt&单模块:monkey-p.xdja.ncser--throttle500--ignore-crashes--ignore-timeouts--ign ore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/storage/sdcard0/monkey_log.txt&备注:1、单模块命令加:-p模块包名;2、测试9小时使用180000,测试18小时使用3750003、测试开始后将手机从PC上拔出并连接充电器继续进行测试,测试完成后手机会自动停止操作4、事件数量180000基本9小时,跑时间太久日志会被冲掉,因此建议每天跑2次3、日志导出:分别将手机中的aplog、monkey运行日志、trace导出到PC侧1、Aplog:可以使用MTP方式直接将手机侧logs文件夹拷贝到PC侧2、Monkey运行日志:adb pull/storage/sdcard0/monkey_log.txt e:\monkey_log.txt备注:前面的路径为手机侧存储monkey运行日志的路径和文件名,后者为PC 侧的存储路径3、anr获取trace:adb pull/data/anr目标目录;比如:adb pull /data/anr d:/,就会在d盘;备注:当ANR发生的时候,系统会将ANR信息写入到手机的data/anr/这个文件夹,若报anr问题,请使用adb pull命令将这个文件夹导出4、BUG提交:描述:【主题】:Monkey测试音乐模块出现1次crash【预制条件】:1.测试机电量充足2.测试前恢复出厂设置【操作步骤】:Monkey测试命令adb shellmonkey --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 180000 > /storage/sdcard0/monkey_log.txt &【实际结果】:Aplog目录例如:All2015-09-21-18-53-18-0600\logs\crashlog1\system_app_crash56.txtAplog实际报错信息例如:ng.IllegalStateException: Can not perform this action after onSaveInstanceStateat android.support.v4.app.y.c(Unknown Source)at android.support.v4.app.y.enqueueAction(Unknown Source)at mitInternal(Unknown Source)at mit(Unknown Source)at .cyanogenmod.eleven.ui.activities.i.run(Unknown Source)at android.os.Handler.handleCallback(Handler.java:739)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5221)at ng.reflect.Method.invoke(Native Method)at ng.reflect.Method.invoke(Method.java:372)at .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)at .android.internal.os.ZygoteInit.main(ZygoteInit.java:693)at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:116)【期望结果】:测试无问题【出现概率】:1【对比机现象】:无【LOG地址】:\\11.12.111.153\public\\软件测试\测试LOG\ROM快速定制LOG\ ROMDZ-1673【备注】:R19【联系人】:侯璐Log:aplog、monkey运行日志、trace提交至服务器:\\11.12.111.153\public\\软件测试\测试LOG\ROM快速定制LOG\备注:aplog需附上全部的log日志,方便研发分析其他:1、查看当前在运行的包名:手机连接PC端,打开模块,运行命令如下:adb shell dumpsys window |findstr mFocusedWindowu0和/之间的部分为包名2、参数说明命令:monkey-p.android.contacts--throttle500--ignore-crashes--ignore-timeouts--ignore-s ecurity-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/s torage/sdcard0/monkey_log.txt&参数:--throttle:每个事件结束后的间隔时间(单位毫秒)(如不指定,系统会尽快的发送事件序列)。
如:–throttle 1000间隔1S-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package,如:-p .ckt -p .ckt.asura--ignore-crashes:忽略崩溃--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--ignore-native-crashes:忽略本地代码导致的崩溃异常--monitor-native-crashes:跟踪本地方法的崩溃问题-v:指定打印信息的详细级别,一个-v增加一个级别,默认级别为0后面跟的数字180000即为事件数量,数字越大,测试压力越大3、手动停止monkey测试命令1.adb shell2.ps|grep monkey 查看monkey进程ID号,是一串数字3.kill进程ID号停止monkey测试4、日志分析:1.CRASH (崩溃)anr in(应用无响应)aplog日志中有crash文件夹,可查看报错信息2.FATAL(严重错误)aplog日志中搜索关键字3.tombstone(底层报错):aplog中有tombstone文件夹,可查看报错信息,一般与CRASH并存。
5、报错即停测试命令:monkey -p .android.contacts --throttle 500 -v -v -v 180000 >/storage/sdcard0/monkey_log.txt &monkey --throttle 500 -v -v -v 180000 > /storage/sdcard0/monkey_log.txt &。