首页 > 其他分享 >Monkey测试详解

Monkey测试详解

时间:2022-08-25 03:00:20浏览次数:52  
标签:Monkey 程序 详解 测试 Android 异常 monkey

一、测试工具Monkey是什么?

Monkey是AndroidSDK提供的一个命令行工具,可以简单,方便地运行在任何版本的Android模拟器或实体设备上。

Monkey就是猴子,Monkey测试,是指像猴子一样,猴子什么都不懂,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按的操作。

通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键点击等操作来对设备上的程序进行稳定性测试,检测程序多久的时间会发生异常。

二、作用

通过向系统发送伪随机的用户事件流(按键点击、触摸屏滑动、文字输入等),实现对应用程序客户端的进行稳定性测试。

 

三、程序介绍

 

  • Monkey是一种测试软件的稳定性、健壮性的快速有效的方法。
  • Monkey是Android系统自带的程序,由Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。
  • Monkey是需要通过adb来运行。
  • Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey。

四、如何使用

A、搭建环境:

  • 下载安装jdk
  • 下载安装sdk

B、安装并配置好adb环境,并通过adb连接好设备(PC虚拟机或手机实体机)。

  • 手机实体机:在开发者选项里打开手机的usb调试,用usb数据线连接手机,允许电脑连接手机。
  • PC虚拟机:无需做任何调试。

C、获取被测应用的包名:手机中安装APK包名查看器、查看AndroidManifest.xml源码文件、aapt命令查看、询问开发人员

D、执行Monkey命令进行测试:

  • PC虚拟机:adbshell进入Android系统,通过执行monkey{+命令参数}来进行Monkey测试。
  • 手机实体机:直接执行monkey命令。

五、架构

 

六、命令和常用参数

 

 

 

 

 

七、结果分析整理

monkey命令运行完之后,查看运行结果,找找出错的地方,比如一些关键字“error”。

如果程序出现崩溃或者不响应的情况,可以在log日志中搜索关键词“exception”、“cash”、“ANR”。

常见的“exception”:

  • 算术异常类:ArithmeticExecption
  • 空指针异常类:NullPointerException
  • 类型强制转换异常:ClassCastException
  • 数组负下标异常:NegativeArrayException
  • 数组下标越界异常:ArrayIndexOutOfBoundsException
  • 违背安全原则异常:SecturityException
  • 文件已结束异常:EOFException
  • 文件未找到异常:FileNotFoundException
  • 字符串转换为数字异常:NumberFormatException
  • 操作数据库异常:SQLException
  • 输入输出异常:IOException
  • 违法访问错误:IllegalAccessError
  • 内存不足错误:OutOfMemoryError
  • 堆栈溢出错误:StackOverflowError

单词注释:

  • error:错误
  • exception:异常
  • crash:崩溃
  • ANR:应用程序不响应

八、缺点

Monkey不支持条件判断,也不支持读取待测界面信息来执行验证操作。

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

 

标签:Monkey,程序,详解,测试,Android,异常,monkey
From: https://www.cnblogs.com/paleDream/p/16622933.html

相关文章

  • GET 和 POST详解
    https://blog.csdn.net/qq_44204058/article/details/113984363一、HTTP请求方法Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE.一个URL......
  • Object.defineProperty方法详解(全面)
     Object.defineProperty方法详解(全面) 一、Object.defineProperty的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性二、Object.defineproperty方......
  • 自动化测试如何解决日志问题
    前言前几天在知识星球会员群里,有同学问了一个自动化测试实践中遇到的问题:持续集成的自动化用例很多,测试环境日志level为debug,日志量大概40G/每天,定位问题时日志查询很慢......
  • 测试用例模板
       用例编号功能模块用例标题前置条件操作步骤预期结果优先级测试结果备注 ......
  • java泛型详解
    java泛型详解1.泛型​ Java泛型是J2SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(typeparameter)这种参数类型可以用在类、接......
  • WebApi传数据以及Postman测试
    1.参数传值代码截图postman截图postman结果截图2.参数传json数据2.1传一条数据代码截图postman截图postman结果截图2.2传一个集合(多条数据)代码截图pos......
  • 测试
    ceveqdqdceveqdqdDqceveqdqdceveqdqdceveqdqdDqceveqdqdDqceveqdqdceveqdqd......
  • 定时任务报警通知解决方案详解
    简介: 本文详细介绍定时任务通知的解决方案,以及市面上常见的开源定时任务通知方案对比。什么是定时任务定时任务是每个业务常见的需求,比如每分钟扫描超时支付的......
  • 开源交流丨批流一体数据集成框架ChunJun数据传输模块详解分享
    课件获取:关注公众号“ChunJun”,后台私信“课件”获得直播课件视频回放:点击这里ChengYing开源项目地址:github丨gitee喜欢我们的项目给我们点个__STAR!STAR!!STAR!!!(重要的......
  • Linux 系统grep、egrep、fgrep命令详解
    Linux系统中有很多很有名的搜索类命令,例如find命令、locate命令、sed命令,但还有三位兄弟是不得不提的,它们在搜索界的地位举足轻重,那就是grep、egrep、fgrep三兄弟。......