Android_Monkey Test
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
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,拨号,挂断及⾳量控制键。
monkey参数Monkey参数是一种用于Android应用程序测试的工具,它可以模拟用户在应用程序中的各种操作,如点击、滑动、输入等。
通过使用Monkey参数,测试人员可以快速地发现应用程序中的潜在问题,从而提高应用程序的质量和稳定性。
Monkey参数的使用非常简单,只需要在命令行中输入相应的参数即可。
以下是一些常用的Monkey参数:1. -p:指定要测试的应用程序的包名。
2. -v:输出详细的日志信息。
3. --throttle:指定事件之间的延迟时间,单位为毫秒。
4. --pct-touch:指定触摸事件的百分比。
5. --pct-motion:指定运动事件的百分比。
6. --pct-trackball:指定轨迹球事件的百分比。
7. --pct-nav:指定导航事件的百分比。
8. --pct-majornav:指定主要导航事件的百分比。
9. --pct-syskeys:指定系统按键事件的百分比。
10. --pct-appswitch:指定应用程序切换事件的百分比。
11. --pct-anyevent:指定任何事件的百分比。
12. --ignore-crashes:忽略应用程序崩溃。
13. --ignore-timeouts:忽略超时错误。
14. --ignore-security-exceptions:忽略安全异常。
15. --monitor-native-crashes:监视本地崩溃。
通过使用这些Monkey参数,测试人员可以对应用程序进行全面的测试,发现潜在的问题,并及时修复它们。
同时,Monkey参数还可以帮助测试人员提高测试效率,减少测试时间和成本。
总之,Monkey参数是一种非常有用的Android应用程序测试工具,它可以帮助测试人员快速地发现应用程序中的问题,并提高应用程序的质量和稳定性。
如果你是一名Android应用程序测试人员,那么一定要掌握Monkey参数的使用方法,以便更好地完成测试工作。
什么是Monkey测试?Monkey测试: 是Andriod是⾃动化测试的⼀种⼿段,Monkey测试本⾝⾮常简单,就是模拟⽤户的按键输⼊,触摸屏输⼊,⼿势输⼊等,看设备多久时间会出现异常(⽐如调节⾳量,亮度调节,横竖屏切换,截图,播放⾳乐)为什么要做Monkey测试?模拟⽤户,稳定性 模拟⼈的操作 模拟⼈长时间的测试 模拟⼈不同场景操作怎么去做Monkey测试?准备⼯作:1)电脑端:androidsdk/JDK配置环境变量2)⼿机端:⼿机选择3)建议真机测试,学习可以试⽤模拟器(夜神,逍遥,天天,雷电),⼯作不要⽤个⼈⼿机和模拟机monkey测试不需要root,也不建议刷机测试机:获取root权限获取底层数据4)配置:版本号,连续点击5-7次,开发者模式开启USB调试:开发者选项------>打开USB调试连接⼿机:USB/Wifi同⼀局域⽹cmd命令:输⼊adb devivcesdevices:表⽰正常offline:拔插USB即可模拟器---模拟器升级到最新版本no devices:驱动unauthorized:未授权可能遇到的问题?端⼝占⽤,检查端⼝占⽤的命令:netstat-ano|findstr “5037”360、⼿机助⼿可能会占⽤5037的端⼝,卸载掉Monkey测试:简单命令参数:1.count 事件数,必填2.--ignore-crashes:崩溃,闪退--ignore-timeouts:超时,⽆响应如果使⽤这个参数,发⽣奔崩溃或者⽆响应的时候,会结束应⽤进程,重新打开继续执⾏,直到事件次数结束不使⽤该参数,发⽣上述问题,monkey测试赛停⽌在问题界⾯--缺乏稳定性测试的意义adb shell monkey:得到所有monkey的参数--ignore-security-exceptions :安全认证忽略测试过程中发⽣的安全⽅⾯的认证等的问题,⼀旦发⽣该类的问题后,结束app的进程,或者继续操作,知道设置的次数完成,⼀般情况都要⽤上怎么固定到具体的app?-p包名,指定到具体的某⼀个appadb shell pm list package -3 获取⽤户安装的第三⽅app的包名adb shell pm list package -s 获取系统的app包名确认包名:adb shell dumpsys activity| find “mFocusedActivity”显⽰当前正在使⽤的app-s SEED 定义明确的seedN个seed每⼀个seed可能会发N个bugbug总量会特别多--不利于测试,稳定性验证======>要定义唯⼀seed值,monkey测试赛从头到尾都⽤这个seed值[-v [-v] ... ]:⽇志的详细程度共3个v越多,⽇志越详细常⽤命令:-p 指定包名 com.hpbr.bosszhipinadb shell monkey -p com.hpbr.bosszhipin 200----> boss直聘App,执⾏200次的事件操作-v 输出⽇志的级别:-v -v -v 根据项⽬的质量要求,⼀般-v -v。
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测试是一种通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)来对应用程序客户端进行稳定性测试的方法。
其标准如下:
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测试的优点1.自动化:Monkey测试是一种完全自动化的测试方法,测试工具可以自动生成随机事件,并按照一定的概率分布触发,大大减少了测试人员的工作量。
2.广泛性:Monkey测试可以通过随机触发事件来覆盖尽可能多的应用场景和操作路径,从而发现潜在的软件缺陷和系统错误。
3.快速性:Monkey测试可以在较短的时间内完成测试,提高了测试效率。
4.全面性:Monkey测试可以对整个系统进行测试,包括应用程序、系统服务和硬件设备等。
5.可重复性:Monkey测试可以通过设置种子数来保证测试结果的可重复性,便于后续的调试和分析。
三、Monkey测试的缺点1.未考虑内部结构和逻辑关系:Monkey测试只模拟用户的随机操作,未考虑应用程序的内部结构和逻辑关系,可能无法发现与具体业务逻辑相关的错误。
2.无需提供测试用例:Monkey测试是一种黑盒测试方法,不需要提供具体的测试用例,但有时可能无法确保测试数据的完整性和正确性。
3.随机性可能导致测试结果不准确:由于Monkey测试是基于随机触发事件的方法,测试结果具有一定的偶然性,可能无法全面覆盖系统的所有功能和路径。
Monkey一.什么是monkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或者实际设备中,它向系统发送伪随机的事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
Moneky测试是为了测试软件的稳定性、健壮性的一种有效方法。
二.Monkey的特征测试的对象仅为应用程序包,有一定局限性Moneky测试的时间是随机的不能进行自定义可对monkey test 的对象、事件数量、类型、频率等进行设置。
三.Monkey使用环境的搭建Monkey环境配置:首先搭建monkey的运行环境在Windows下基于SDK1.下载SDK for Windows 解压:android-sdk-windows 到D:盘根目录2. 设置sdk下面tools的环境变量(具体参考百度,有详细说明)/article/f71d603757965b1ab641d12a.html(在下载Sdk前要下载JDK,关于JDK环境变量的配置请参考/article/e9fb46e1b2b3347521f766c1.html)SDK本身的安装是通过sdk manager这个程序下载相关的安装包来进行的,安装好后不会有图标显示在桌面上,因为其本身只是提供相关工具包的使用。
在sdk manager下载过程中,因为谷歌在中国被封杀,而相关工具包的下载都是通过谷歌下载的,所以大家会发现下载速度超慢并且下载经常中断,这里大家可以用迅雷直接在下载地址里下载:在右下角有个log点击可看到如下:在Parse XML下即为该该地址文档里所包含的文件,用迅雷将Parse XML后的地址下载打开,再在里面找到要用的文件名,将Parse XML 地址最后面的部分改为文件名成为一个新链接后,将此链接放在迅雷里下载即可。
下载后的文件放到sdk的tools文件夹下并且记得重新打开sdk manager进行安装:点击下载好的文件,然后点击左边的install即可。
Setup
1, Make sure Target is acquired on Live network(make sure SIM is inserted, 3G card is best)
2, remove non-standard Apps(APKS)
rm/system/app/QualcommSettings.apk
rm/system/app/Development.apk
rm /system/app/TSCalibration.apk
rm/system/app/Wiper.apk
rm/system/app/Neocore.apk
rm/system/app/SetScreenTimeout-debug.apk
rm/system/app/CdmaNamSettings.apk
rm/system/app/FM.apk
首先使用adb shell命令进入命令模式
然后使用用上面的rm (删除命令)操作(1 2 4 5 7对应的存在需要删除,其他的在我的P3
上没见着)
3,设置android属性,以避免某些操作,像call E911
命令:adb shell setprop ro.monkey 1
4,执行factory reset(可以在4前执行)
Setting->privacy->Factory Data reset
5,设置屏幕永不超时
命令:adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update system set value=-1 where name='screen_off_timeout'"
Setting->privacy->Factory Data reset
6,其他操作(Disable wiper logging)
A,设置/etc/gps.conf 中ENABLE_WIPER=0
B,设置NV 的06267项为2
A详细操作,命令:adb pull /etc/gps.conf c:/
使用上面命令在c盘下生成一个gps.conf文件,使用记事本(UE更好)打开此文件,如果ENABLE_WIPER项存在,则将值设为0(ENABLE_WIPER=0),不存在,在文尾添加
ENABLE_WIPER=0,保存。
然后命令行进入c:目录下(cd ../..)
使用命令:adb push gps.conf /etc/gps.conf
完成A设置
Monkey command executed
1,Command executed to run monkey for all packages
命令:adb shell monkey -s 100 --throttle 500 -v -v -v --ignore-timeouts --ignore-crashes --ignore-security-exceptions 1000000
2,Command executed to run monkey for individual packages like Camera
命令:adb shell monkey -v -v -v --ignore-timeouts --ignore-crashes --ignore-security-exceptions -p com.android.camera -s 100 --throttle 1000 500000
Packages
com.android.alarmclock
com.android.browser
com.android.calendar
com.android.camera
com.android.contacts
com.android.globaltime
com.android.mms
com.android.music
com.android.phone
com.android.settings。