常用的Monkey命令

Android  2020年6月20日 pm12:21发布4年前 (2020)更新 91es.com站长
108 0 0

Monkey的概念

“猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的、乱点乱按的。

这种测试方式在产品周期中的早期阶段会找到很多很好的bug,为用户节省不少的时间。

Monkey的介绍

它是Android系统自带一个命令行工具,可以运行在模拟器里或者真是设备中运行。 monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。

monkey包括很多选项,大致四大类:

  1. 基本配置选项,如设置尝试的事件数量。
  2. 运行约束选项,如设置只对单独的一个包进行测试。
  3. 事件类型和频率。
  4. 调试选项

monkey命令特性

不可能使用monkey来指定做一样测试,重复做很多次。因为monkey产生的是伪随机的事件流。但是我们可以通过添加命令选项将操作限制在一定的范围内。

常用的Monkey脚本

下面的demo是工作中简单测试用的

demo 1

adb shell monkey -v -v -p com.125la.test --throttle 5000 1000

-v -v Level 1级日志,提供更详细的安装信息,如测试中被选中或者未被选中的Activity

-p com.125la.test 仅测试这个包名

5000 每个指定之间延迟5秒

1000 随机事件个数

demo 2

adb shell monkey -p com.125la.test --ignore-crashes --ignore-timeouts --ignore-native-crashes
 --pct-touch 30 -s 1 -v -v --throttle 200 100000 2>./error.txt 1>./info.txt

PS: 电脑上运行monkey命令,./error.txt 和 ./info.txt会在当前目录自动生成对应的文件。

  • -p com.125la.test 仅针对这个包名测试
  • --ignore-crashes 忽略应用程序崩溃(force & Close 错误),继续发送并执行事件,直到事件执行完成
  • --ignore-timeouts 忽略应用程序发声ANR(Application No Responding)错误时,直到事件执行完成
  • --ignore-native-crashes 忽略本地程序奔溃,直到事件执行完成
  • --pct-touch 30 调整触摸事件为30%,即整个事件中触摸实际占30%
  • -s 1 伪随机数生成器seed值。seed值为1,相同的seed值再次执行monkey,将产生相同的序列
  • -v -v 日志等级为level 1,将提供较为详细的日志,包括每一个发送到Activity的事件信息
  • --throttle 200 事件直接延迟200ms 可以控制monkey事件的执行速度,如果不指定该选项,monkey事件不会延迟
  • 100000 执行事件为10万次
  • 2>./error.txt Level 2日志保存到sdcard的error.txt中
  • 1>./info.txt Level 1日志保存到sdcrad的info.txt中

demo 3

白名单whitelist.txt

创建白名单whitelist.txt,里面放入需要测试的包名

com.qq.music
com.baidu.carlife
com.125la.test

白名单中有的包名都会测试,然后

# push 到测试机器的/data目录
adb push whitelist.txt /data

monkey命令1

adb shell monkey --pkg-whitelist-file /data/whitelist.txt --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --pct-touch 80 --pct-motion 10 --pct-syskeys 0 --throttle 400 -v -v -v 2000000

命令中monkey中忽略异常,闪退,等直到测试完成。

至于命令的具体意义,你可以访问我摘抄的文章《[摘]Android monkey命令详解

monkey命令2

monkey --pkg-whitelist-file /data/whitelist.txt --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes --ignore-native-crashes --pct-touch 80 --pct-motion 10 --pct-syskeys 0 --throttle 400 -v -v -v 2000000

参考文章

  1. 一个简单的monkey测试工具
  2. [摘]Android monkey命令详解
  3. [转]Monkey测试基本命令

 历史上的今天

  1. 2024: Files中启动自己的播放器(0条评论)
  2. 2024: 朱自清:窗前的树(0条评论)
  3. 2022: JAVA 从一个List里删除包含另一个List的数据(0条评论)
  4. 2018: Launcher2源码之壁纸设置(0条评论)
  5. 2018: DialogFragment使用(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

C语言之指针

前言记录一下C语言中的指针相关知识,算是回顾之前所学吧。正文指针在C语言中,内存单元的地址称为指针。专门用来存放地址的变量,称为指针变量。存储类型 数据类型 * 指针变量名;int a = 10;# 第一种int *p = &a;# 第二种int *p; //...

Android悬浮球

前言上次介绍过创建一个《1像素的悬浮窗口》,这里需要做一个跟魅族一样的悬浮球,部分代码套用之前的。设计悬浮球时考虑全屏和非全屏,以及导航栏在左侧或底部情况等,要不然拖动时存在抖动问题。正文直接入正文,上代码片段。隐藏内容!付费阅读后才能查看!¥3 ¥6多个隐藏块只需支付一次付费阅读...

媒体封面流RecyclerCoverFlow左右滚动

前言本文没有创新,使用其他大佬代码进行定制化的,参考文章请看文末。主要是删减了部分功能和增加了无限循环等。记录于此,方便自己翻阅。正文效果如图隐藏内容!付费阅读后才能查看!¥6多个隐藏块只需支付一次付费阅读参考文章《GitHub - ChenLittlePing/Recycler...

Only the original thread that created

在service中回调时通知界面刷新了数据,就提示了如下异常:Only the original thread that created a view hierarchy can touch its views.翻译了一下:只有创建了视图层次结构的原始线程才能访问它的视图意思就是只有在主U...

Android获取使用MediaBrowserService的app

前言简单记录一下获取Android中使用MediaBrowserService的的音乐信息,然后进行绑定,这样就可以控制相关应用,比如上下曲,播放暂停等。正文这里只是简单记录,部分代码片段。PackageManager packageManager = getPackageManager(...

川端康成:父母的心

诸位,把眼睛闭上五分钟,然后平心静气地想想父亲或者母亲试试看。你们的父母是如何深深地爱着你们,怀念子女的父母之心是多么温暖、多么广阔,直到现在不是依然使大家感慨万千、激动不已的么?啊,用不着闭上眼睛,你们大家无论早晚不是深深地感到双亲之恩么?这个故事,肯定也是让你们知道父母之心是多么伟大的故事之...