monkey稳定性测试
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的使用以Monkey的使用为标题,我将为大家介绍一款功能强大的自动化测试工具——Monkey。
一、什么是Monkey?Monkey是一款由Google开发的自动化测试工具,主要用于测试Android应用程序的稳定性和性能。
它可以模拟用户在设备上的随机操作,如点击、滑动、手势等,以此来检测应用程序在不同场景下的稳定性和可靠性。
二、为什么选择Monkey?1.全面性能测试:Monkey可以模拟各种用户操作,随机生成事件序列,对应用程序进行全面性能测试。
通过对应用程序进行长时间、大量的随机操作,可以发现潜在的问题和性能瓶颈。
2.易于集成:Monkey可以与其他测试工具和框架进行集成,如JUnit、Robotium等。
通过与其他工具的结合,可以更加灵活地进行自动化测试,提高测试效率。
3.快速反馈:Monkey可以在短时间内生成大量的测试数据,快速发现应用程序中的问题。
这样可以及早发现和修复bug,提高应用程序的质量。
三、如何使用Monkey?1.安装Monkey:首先需要安装Android SDK,并将adb工具添加到系统环境变量中。
然后通过adb命令将Monkey安装到设备上。
2.编写Monkey脚本:Monkey的测试用例是通过一系列的命令行参数来控制的。
可以通过编写一个脚本文件,将这些参数进行组合,以实现特定的测试场景。
3.运行Monkey:通过adb命令启动Monkey,将脚本文件作为参数传入。
Monkey将根据脚本文件中的定义,模拟用户的随机操作。
四、Monkey的使用场景1.稳定性测试:Monkey可以通过模拟用户的随机操作,对应用程序进行长时间的稳定性测试。
这对于测试应用程序的内存泄漏、ANR(Application Not Responding)等问题非常有帮助。
2.压力测试:Monkey可以通过模拟大量的用户操作,测试应用程序在高负载情况下的稳定性和性能。
这对于评估应用程序在用户访问量增加时的表现非常重要。
monkey测试用例
monkey测试用例Monkey测试用例Monkey测试是一种随机性测试方法,旨在模拟用户的随机操作来检测软件系统的稳定性和可靠性。
本文将以Monkey测试用例为标题,探讨Monkey测试的背景、原理、步骤以及该测试方法的优缺点。
一、背景介绍随着互联网的快速发展,软件系统的功能越来越复杂,代码规模也越来越庞大。
在软件开发过程中,为了确保软件系统的稳定性和可靠性,测试工作变得尤为重要。
而Monkey测试作为一种黑盒测试方法,可以帮助开发人员发现系统中的潜在问题,提高系统的质量。
二、Monkey测试原理Monkey测试的原理很简单,通过随机生成的用户操作序列对软件系统进行测试。
这些随机操作可以包括点击、滑动、输入等,目的是模拟用户在实际使用过程中的各种操作行为。
通过不断地随机操作,可以发现系统在不同场景下的异常行为和潜在问题。
三、Monkey测试步骤1. 确定测试目标:在进行Monkey测试之前,需要明确测试的目标和范围。
例如,测试某个特定的功能模块或整个软件系统。
2. 设计测试用例:根据测试目标,设计一系列随机的用户操作序列。
例如,随机点击、滑动、输入等操作,可以设置操作的频率和时长。
3. 执行Monkey测试:将设计好的测试用例作为输入,通过Monkey工具自动化执行测试。
在测试过程中,记录系统的响应时间、崩溃情况等关键指标。
4. 分析测试结果:根据Monkey测试的结果,分析系统的稳定性和可靠性。
如果发现异常行为或潜在问题,及时反馈给开发人员进行修复。
四、Monkey测试的优点1. 自动化执行:Monkey测试可以通过工具自动化执行,无需人工干预,提高测试效率。
2. 多样化测试:Monkey测试可以模拟用户的各种随机操作,覆盖系统的不同场景,发现更多的潜在问题。
3. 提高系统稳定性:通过不断进行Monkey测试,可以发现系统中的异常行为和潜在问题,及时修复,提高系统的稳定性和可靠性。
五、Monkey测试的局限性1. 难以准确重现问题:由于Monkey测试是随机性的,无法准确重现问题,对于一些复杂的问题可能无法发现。
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测试⼀、Monkey是什么?Monkey是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器或者实际设备中向系统发送伪随机的⽤户事件流(按键输⼊、触摸屏输⼊、⼿势输⼊等)实现对正在开发的应⽤程序进⾏测试Monkey测试之⼀种为了测试软件的稳定性、健壮性的快速有效的⽅式⼆、Monkey⽤来做什么的?Monkey 主要⽤于Android的稳定性测试,⾃动的⼀个压⼒测试⼩⼯具,主要⽬的就是为了测试app 是否会Crash(崩溃).三、Monkey的特征1.测试对象仅为应⽤程序包,有⼀定的局限性(不能对源码进⾏测试)2.Monkey测试使⽤的事件流数据是随机的,不能进⾏⾃定义3.可以对MonkeyTest对象,事件数量,类型、频率等进⾏设置四、Monkey程序介绍(1) Monkey程序由Android系统⾃带,使⽤Java语⾔写成,在Android⽂件系统中的存放路径是: /system/framework/monkey.jar;(2) Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;(3)Monkey 命令启动⽅式:a)可以通过PC机CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试b)在PC上adb shell 进⼊Android系统,通过执⾏ monkey {+命令参数} 来进⾏Monkey 测试c)在Android机或者模拟器上直接执⾏monkey 命令,可以在Android机上安装Android终端模拟器五、Monkey测试的⽬的1.ANR问题:在⽇志中搜索“ANR”2.崩溃的问题:在⽇志中搜索“Exception”3.ANR:Application Not Responding,在Android中,如果应该程序有⼀段时间响应不够灵敏,系统会向⽤户显⽰⼀个对话框,这个对话框称作应⽤程序⽆响应对话框。
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测试的关键。
目前市面上有多款移动测试工具可供选择,如Appium、MonkeyTalk、Calabash等。
其中,Android平台自带了一个名为Monkey的测试工具,常用于移动端Monkey测试。
Monkey可以随意生成用户事件,如触摸、按键、手势等,以及随机化的用户事件序列,模拟真实用户使用应用程序的场景。
第三步:制定测试方案和用例制定测试方案和用例是移动端Monkey测试的核心步骤。
在制定测试方案和用例时,需要根据测试对象的特点和测试的目标,制定具体的测试步骤和测试用例。
举例来说,我们对电商应用程序进行测试,可以制定如下测试方案:1. 针对商品浏览功能模块,模拟不同用户的浏览行为,包括点击商品、滑动商品列表、放大图片等操作,并检查页面响应速度、显示效果、商品详细信息等方面是否符合要求。
2. 针对搜索功能模块,模拟用户不同的搜索关键词和搜索条件,包括商品名称、价格、品牌、颜色、尺寸等,测试搜索结果的准确性、排序规则、页面显示等方面是否正常。
monkey稳定性测试的步骤及策略
monkey稳定性测试的步骤及策略1、adb的作⽤是什么?adb的全称:android debug bridge 安卓调试桥梁,包含在 Android SDK 平台⼯具软件包中。
通过该命令与设备进⾏通信,以便进⾏调试adb可以同时管理多个安卓设备2、monkey测试环境搭建1)下载并安装JDK包,设置环境变量2)下载Android SDK包并解压,配置环境变量E:\Android SDK\Adt Bundle\sdk\tools monkey环境路径E:\Android SDK\Adt Bundle\sdk\platform-tools adb环境路径3)启动dos窗⼝,分别输⼊C:\Users\Administrator>java -versionjava version "1.8.0_181"Java(TM) SE Runtime Environment (build 1.8.0_181-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)C:\Users\Administrator>adb versionAndroid Debug Bridge version 1.0.31C:\Users\Administrator>monkeyrunnerJython 2.5.0 (Release_2_5_0:6476, Jun 16 2009, 13:33:26)[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_181命令查看环境是否搭建好3、连接设备1)⼿机与PC通过数据线连接,在⼿机系统设置⾥开启开发者模式和USB调试模式,设置屏幕为常亮2)在dos窗⼝输⼊ adb devices命令查看设备是否连接上了C:\Users\Administrator>adb devicesList of devices attached9656c4f7 deviceadb ⼦命令参考logcat 打印出安卓系统⽇志adb logcat -d >E:\1.txt-d ⼀次性返回⽇志信息,不需要实时跟踪>E:\1.txt 重定向并保存⽇志install 将某个.apk⽂件安装到指定设备adb install D:\test\weitaixin.apkuninstall 从指定设备上卸载⼀个应⽤,根据包名卸载模拟器中的APPadb uninstall cn.xxxx.xxxx获取报名⽅式1)通过解包⽅式C:\Users\Administrator>aapt dump badging E:xxx.0apkpackage: name='cn.xxx.xxx' versionCode='2701' versionName='2.7.0'sdkVersion:'19'targetSdkVersion:'26'2)通过adb命令获得所有报名adb shell pm list packages(package manager)3)模糊报名进⾏过滤(前提:知道⼤概的报名)adb shell pm list packages weitaixin4)通过管道符 grep进⾏过滤(前提:知道⼤概的报名)C:\Users\Administrator>adb shellPBEM00:/ $ pm list packages |grep weitaipm list packages |grep weitaipackage:cn.xxx.xxx5)通过启动程序,获取当前启动程序的包名C:\Users\Administrator>adb shellPBEM00:/ $ dumpsys window |grep mCurrentdumpsys window |grep mCurrentmCurrentUserId=0mCurrentFocus=Window{fe0aeaf u0 cn.xxx.xxx/cn.xxx.xxx.ui.main.MainActivity}mCurrent=[0,96][1080,2208]mCurrentAppOrientation=SCREEN_ORIENTATION_PORTRAITmCurrentRotation=ROTATION_06)找到⽬录,获取指定⽂件C:\Users\Administrator>adb shellPBEM00:/ $ cd /data/datacd /data/dataPBEM00:/data/data $ lspull 把Adroid设备中的⽂件复制到本地开发机例如:adb pull /data/data/1.txt D:\2.txt⼿机端的路径和⽂件 PC端的路径及重命名push 把本地开发机上的⽂件复制到安卓设备中例如:abd push C:\1.xt /data/dataPC端的位置和⽂件⼿机端的位置get-serialno 打印设备的序列表get-state 打印设备状态kill-server 结束adb服务进程shell 打开指定安卓设备的shell,以执⾏shell命令adb shell 进⼊安卓命令状态安卓系统是基于linux内核开发的,安卓命令和linux命令相似pwd:查看当前所在⽬录ls -l 查看当前⽬录下的资源属性date 打印当前系统时间cat /proc/meminfo 查看内存信息cat /proc/cpuinfo 查看CPU信息ps 查看当前进程信息Monkey测试:是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器⾥和实际设备中。
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、Monkey测试原理:
Monkey是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器⾥或实际设备中。
它向系统发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等),实现对正在开发的应⽤程序进⾏压⼒测试。
Monkey测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法。
2、monkey常见命令:
adb shell monkey {+命令参数} 次数
adb shell monkey -help/-h
3、解析:
adb shell monkey –v –v –v –p 包名 –s 200 --throttle 1000 --ignore-crashes --ignore-timeouts 10000
-v:⽤于指定反馈信息级别,即⽇志的详细程度,总共有三个级别
-p:后边接着对应的包名,如果是整机测试,就不需要,⽤此参数指定⼀个或多个包(package,即APP名字)
-s:seed值,如果seed值相同,则两次的随机事件相同,常⽤于问题重现
--throttle <毫秒>:⽤于指定⽤户(即事件间)的时间延迟,单位是毫秒
--ignore-crashes --ignore-timeouts:在monkey测试过程中,遇到crash或者timeout的情况时忽略,⼀般不设置时,出现crash或者timeout时,monkey测试会终⽌,这⾥是防⽌monkey测试终⽌。
10000:随机事件次数
4、终⽌进程:
adb shell
ps | grep monkey
kill -9 pid。
Monkey测试概述
概述Monkey测试是Android自动化测试的一种手段。
Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。
当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等,以及一些系统级别的事件。
通常也称随机测试或者稳定性测试。
2 测试步骤2.1 测试前提条件∙ 1.将手机恢复出厂设置∙ 2.恢复出厂设置后,进入设置-->关于手机-->高级设置-->勾选‘保持唤醒状态’∙ 3.在设置->安全中设置解锁图案以及PIN码∙ 4.连接adb tool∙ 5.手机开启后台log(*#*#3646633#*#*),开启main log,,mobile log和net log∙ 1.使用USB线连接手机和电脑∙ 2.在电脑中输入Monkey命令:adb shell monkey -p <> --throttle 380 -v -s 3500 300000 > C:\monkey_log.txt2.2 测试步骤∙ 3.在Monkey结束以后查看它停留的界面并且做一些简单的测试,如拨打电话,发送信息等2.3 测试结果∙在运行Monkey命令时,遇到Crash 或者ANR,就会自动终止,Monkey的测试结果可以通过monkey_log.txt查看,如果测试结果正常,在log最后一行会有monkey finished显示并且手机运行正常∙通过monkey_log.txt查看测试结果,在log最后一行显示crashed at event ####of 300000 using seed 3500,如下图:如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错,如果应用程序崩溃或接收到任何失控异常,Monkey也会停止并报错,一般我们执行Monkey时,在3万次以内发生Crash的话就认为Monkey是有问题的,要提交PR。
Android平台Monkey测试标准
A n d r o i d平台M o n k e y测试标准集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]A n d r o i d平台及整机测试测试标准要求大纲(初稿)一、Android系统测试平台Monkey测试标准主要对对CPU、CPU+GPU、内存运行灯作稳定性测试,测试过程中不发生任何异常和报错为通过,测试时间>5小时,至少测试10次,样机>5台。
详细看研发保护机制方案二、整机测试测试整机发热及散热情况、监控CPU等主要芯片工作时温度情况3.整机跑分测试CPU、GPU、内存等用不同跑分软件测试,要求至少使用主流的三款以上跑分软件分别测试整机性能,并与目前已有的对手整机(同解决方案)进行对比,要求同一配置下整机跑分不低于对手同级别设备;4.整机压力挂机测试全功能开启,加载大应用情况下,挂机一周,中间无异常情况,而MTBF暂无测试方法5.环境及电气参数测试(高低温测试要求达标标准按照此前需求文档,但不能低于此文档要求)硬件环境测试1)依据标准GB 191-2000 包装储运图示标志GB 1002-1996 家用和类似用途单相插座形式尺寸GB 家用和类似用途插头插座第一部分:通用要求GB/T 2421-1999 电工电子产品环境试验第一部分:总则GB/T 2422—1995 电工电子产品环境试验术语GB/T —2001 电工电子产品环境试验规程试验A:低温试验方法GB/T —2001 电工电子产品环境试验规程试验B:高温试验方法GB/T —1993 电工电子产品环境试验规程试验Ca:恒定湿热试验方法GB/T 计数抽样检验程序第1部分:按接收质量限(AQL)检索的逐批检验抽样计划GB/T 包装件基本试验温湿度调节处理GB/T 包装件基本试验跌落试验方法GB 4943-2001 信息技术设备(包括电气事物设备)的安全GB 可靠性试验恒定失效率假设下的失效率与平均无故障时间的验证试验方案。
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是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个伪随机事件。
Monkey稳定性测试实战之Monkey对APP随机测试
Monkey稳定性测试实战之Monkey对APP随机测试Monkey测试简介Monkey测试是Android平台⾃动化测试的⼀种⼿段,通过Monkey程序模拟⽤户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常。
开发⼈员结合monkey 打印的⽇志和系统打印的⽇志,修改测试中出现的问题, Monkey 是SDK中附带的⼀个⼯具,所有的事件都是随机产⽣的,不带任何⼈的主观性。
Monkey程序介绍1) Monkey程序由Android系统⾃带,使⽤Java语⾔写成,在Android⽂件系统中的存放路径是:/system/framework/monkey.jar2) Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试了。
Monkey命令的简单帮助要获取Monkey命令⾃带的简单帮助,在CMD中执⾏命令: adb shell monkey –help2.环境搭建⼀、环境搭建安装通过 adb命令安装 apk包: adb install apk包名根据⾃⼰的需要,使⽤其它命令对apk进⾏测试:⽐如通过adb shell monkey -v -p com.xx.xx 100来简单输出测试信息,如图3.随机测试查看apk包名:Cmd -->cd apk安装包⽬录下 aapt dump badging 包名.apk或者直接查看⼿机中存在的apk包,进⼊adb shell 命令后-⼿机的data/data⽂件夹-ls查看所有包名找到要测apk的包名Cmd -> adb shell -> cd data/data -> ls2.运⾏Monkey,对此包进⾏300 次⽆规律点击测试在adb shell环境中:monkey –p 包名字 –v 300或者在windows外⾯执⾏该命令:adb shell monkey -p 包名字 -v 300或者运⾏monkey,对此包进⾏300次⽆规律点击后将⽇志导出到电脑的某⼀位置adb shell -p 包名 -v 点击数 > 电脑某⼀位置3、测试停⽌后,查看导出的monkey⽇志,发现问题。
App稳定性测试
App稳定性测试⼀、什么是稳定性测试1:稳定性测试概念 稳定性测试就是指软件长时间的持续运⾏,系统版本是否稳定,是否能否持续的为⽤户提供服务。
稳定性测试其实也是性能测试范畴中的⼀种⽅式。
2:稳定性测试指标 异常的次数 异常的频率3:稳定性测试⼯具 1:⾸选Monkey Monkey是向系统发送随机的⽤户事件流(如按键输⼊、触摸屏输⼊和⼿势输⼊等),实现对正在开发的应⽤程序进⾏稳定性测试。
可以更好的模拟⽤户操作,确保App的稳定性。
通过Monkey程序模拟⽤户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常 2:MonkeyRunner monkeyRunner 对monkey 命令进⾏封装后的api3:Monkey 局限性 1)发送的事件⽆法指定,是随机发送的 2)测试的应⽤只能是app 3)Monkey虽然可以通过指令来发送事件,但是没有⽀持条件判断,也不⽀持读取待测界⾯的信息来执⾏验证操作4:Monkey原理Monkey 程序是由 Android 系统⾃带,使⽤ Java 语⾔写成,其本⾝是安卓系统下的⼀个monkey.jar⽂件。
在Android⽂件系统中的存放路径是: /system/framework/monkey.jar;Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;Monkey 启动⽅式:在 cmd 命令提⽰符⾥⾯输⼊命令⾏来启动 monkey 测试。
命令⾏:adb shell monkey——monkey.shell——monkey.jar——安卓进程——设备上执⾏测试⼆、如何⽤Monkey进⾏稳定性测试1:Monkey环境搭建 1)Android SDK环境:下载⽹址:/ 2)设备(真机/模拟器) 夜神、mumu等都可以2:Monkey⽀持参数1)连接设备 连接设备 设备:开启USB调试选项 通过在命令⾏输⼊adb devices来进⾏连接2)事件数 Monkey⽀持的所有命令:adb shell monkey查看 必选的命令:COUNT:事件数 通过事件数量来测试稳定性3)事件间隔时间设置 --throttle <milliseconds> 在事件之间插⼊固定延迟。
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中的应用程序在不断地切换画面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:各事件类型的百分比总数不能超过100%;
停止条件
ANR;CRASH;Exception Monkey Test执行过程中在下列三种情况下会自动停止: 1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。 2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。 3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。 通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序
count:事件个数 throttle:用于指定用户操Байду номын сангаас(即事件)间的时延,单位是毫秒 seed:如果seed相同,则两次Monkey测试所产生的事件序列也相同的 random
常用事件百分比
默认情况下,如果不设置,会是‐‐pct‐anyevent为百分之百,也就是纯随机事件。如果通过其他的参数配置了之 后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。 ‐‐pct‐touch <percent>:指定触摸事件的百分比,即在屏幕某处按下并抬起的操作。 ‐‐pct‐motion <percent>:指定滑动事件的百分比,是由屏幕上某处一个down事件、一系列伪随机的移动事件和 一个up事件组成。 ‐‐pct‐majornav <percent>:指定导航事件中,back、menu等事件的百分比,这些导航事件通常会导致UI界面中 的动作事件,如5‐way键盘的中间键,回退按键、菜单按键。 ‐‐pct‐appswitch <percent>:指定Activity之间切换的比例。在随机的时间间隔中,Monkey将执行一个 startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法。注:**不常使用参数** ‐‐pct‐anyevent <percent>:指定任意事件的百分比。
调试参数:
‐‐ignore‐crashes:用于指定当应用程序崩溃时(Force & Close错误),Monkey是否停止运行。如果使用此参 数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。 ‐‐ignore‐timeouts:用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止 运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成 ‐‐ignore‐security‐exceptions:用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是 否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。 ‐‐kill‐process‐after‐error:用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程 序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会 结束该应用程序的进程)。 ‐‐monitor‐native‐crashes:用于指定是否监视并报告应用程序发生崩溃的本地代码。
不常用事件
‐‐pct‐trackball <percent>:指定轨迹球事件的百分比,滚动球事件由一个或多个随机的移动事件组成,有时会 伴随着点击事件。注:**不常使用参数**,现在手机几乎没有滚动球,但滚动球事件中包含曲线滑动事件,在被测 程序需要曲线滑动时可以选用此参数。 ‐‐pct‐nav <percent>:指定导航事件中,up、down、left、right等事件的百分比,导航事件由方向输入设备的 上下左右按键所触发的事件组成。注:**不常使用参数** ‐‐pct‐syskeys <percent>:指定系统按键的百分比,包括HOME、Back、音量等。注:**不常使用参数** pinchzoom flip:Keyboard flip(键盘隐藏) 测试中参数设置 count = 10800 ;throttle = 500; seed = 7562 ‐‐pct‐touch 50 ‐‐pct‐motion 30 ‐‐pct‐majornav 10 ‐‐pct‐appswitch 10** count = 20000 ;throttle = 500; seed = 7722 ‐‐pct‐touch 50 ‐‐pct‐motion 20 ‐‐pct‐majornav 15 ‐‐pct‐appswitch 15** count = 145000 ;throttle = 500; seed = 5209 ‐‐pct‐touch 45 ‐‐pct‐motion 30 ‐‐pct‐majornav 15 ‐‐pct‐appswitch 5 ‐‐pct‐anyevent 5**
用法
$ adb shell monkey [options] 如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个 更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件: $ adb shell monkey ‐p ‐v 500 其中‐p表示对象包 –v 表示事件数量
日志级别
日志级别 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信息
monkey稳定性测试
简介
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如 按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软 件的稳定性、健壮性的快速有效的方法。
特征
测试的对象仅为应用程序包,有一定的局限性。 Monkey测试使用的事件流数据流是随机的,不能进行自定义。 可对MonkeyTest的对象,事件数量,类型,频率等进行设置。 对于Monkey也有一定缺点的,它是不支持截屏,录制回放等操作的
事件简介
monkey事件来源三种:默认随机事件、脚本定义事件、network网络事件; monkey事件根据类型比例生成事件队列,循环查找事件; monkey事件的实现使用系统内部API(activemanager,inputmanager,windowmanager)来实现;
基本事件参数配置