热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

monkey初接触

第一次听说monkey,根本不知道是什么东西,脑海里就一个印象,很厉害的自动化测试工具,可是体验了一下,似乎不

第一次听说monkey,根本不知道是什么东西,脑海里就一个印象,很厉害的自动化测试工具,可是体验了一下,似乎不是那么回事。。。

一、Monkey 是什么?

monkey就是SDK中附带的一个工具。

二、Monkey 测试的目的?

:该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。

三、Monkey 测试的特点?

monkey测试,所有的事件都是随机产生的,不带任何人的主观性。支持Monkey Script脚本。

四、Monkey 命令详解

1).标准的monkey 命令[adb shell] monkey [options] , 例如:adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。上面只是一个简单的例子,实际情况中通常会有很多的options 选项2).四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项1:常用选项--help:打印帮助信息-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。2:事件选项-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:--pct-motion (滑动事件)、 --pct-trackball (轨迹球事件) 、 --pct-nav (导航事件 up/down/left/right)、 --pct-majornav (主要导航事件 back key 、 menu key)、 --pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch (activity之间的切换)、 --pct-anyevent (任意事件)3:约束选项-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.xyz.asura;-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;4:调试选项--dbg-no-events:初始化启动的activity,但是不产生任何事件。--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。--ignore-crashes:忽略崩溃--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--kill-process-after-error:发生错误后直接杀掉进程--monitor-native-crashes:跟踪本地方法的崩溃问题--wait-dbg:知道连接了调试器才执行monkey测试。

五、一个简单的monkey命令:

adb shell monkey -p com.xyz.android.junittest -s 500 -v 10000

但是,工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下

adb shell monkey -p com.xyz.android.junittest -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt

六、monkey作用的包:com.xyz.android.junittest

产生时间序列的种子值:500忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃 、 详细信息级别为2 , 产生 10000个事件 。

七、包名的获得

1、有源码2、下载包名查看器app3、adb logcat 查找到这一行输出:(I/ActivityManager(数字):Dispayed 包名/类名:+ms)4、aapt命令查看

八、monkey的结果日志与分析

011554363738882.png

转:https://www.cnblogs.com/yanzisucheng/p/4384125.html



推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • protobuf 使用心得:解析与编码陷阱
    本文记录了一次在广告系统中使用protobuf进行数据交换时遇到的问题及其解决过程。通过这次经历,我们将探讨protobuf的特性和编码机制,帮助开发者避免类似的陷阱。 ... [详细]
  • 本文详细介绍了如何调整 Kettle 的内存配置以优化性能,并指导用户如何正确设置日志输出中的时间类型,确保数据处理和监控的准确性。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ... [详细]
author-avatar
城哥_1986
这个家伙很懒,什么也没留下!