Monkey测试

monkey测试简介

什么是Monkey

Monkey程序是Android系统自带的,由Java语言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar。

操作流程

通过名为“monkey”的Shell脚本去启动Monkey.jar程序(shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey),在你指定的APP应用上模拟用户点击,滑动,输入等操作以极快的速度来对设备程序进行压力测试,检测程序是否会发生异常,然后通过日志进行排错。

目的

测试app 是否会是否会Crash,主要用于稳定性测试
操作命令格式:adb shell monkey {+命令参数}

操作步骤

  1. 环境配置:把adb加入系统环境,手机开启开发者模式
  2. 连接手机,获取测试的包名。获取包名的方法
  3. Monkey编写测试命令,并运行。monkey操作命令

如果要提前中结束测试,中断运行中的monkey

CTRL+C
adb shell ps | grep monkey  返回进程号
adb shell kill [刚才查到的进程号]

从Monkey日志中看问题

测试结果初步判断

  1. monkey执行时未加--ignore-crashes --ignore-crashes参数,就先浏览日志中Events injected: 值,查看当前已执行的次数,就知道有无bug
  2. 程序无响应的问题:在日志中搜索 “ANR”
  3. 崩溃问题:在日志中搜索 “Exception” ,在这里顺便提一下常见的Java异常:
    1. 算术异常类:ArithmeticExecption
    2. 空指针异常类:NullPointerException
    3. 类型强制转换异常:ClassCastException
    4. 数组负下标异常:NegativeArrayException
    5. 数组下标越界异常:ArrayIndexOutOfBoundsException
    6. 违背安全原则异常:SecturityException
    7. 文件已结束异常:EOFException
    8. 文件未找到异常:FileNotFoundException
    9. 字符串转换为数字异常:NumberFormatException
    10. 操作数据库异常:SQLException
    11. 输入输出异常:IOException
    12. 违法访问错误:IllegalAccessError
    13. 内存不足错误:OutOfMemoryError
    14. 堆栈溢出错误:StackOverflowError 15.其他,参考

找出问题后的操作步骤:

  1. 找到是monkey里面的哪个地方出错
  2. 查看Monkey里面出错前的一些事件动作,并手动执行该动作
  3. 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样。

常规测试的monkey用法

adb shell monkey -p com.xxx.myapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000>d:\mylog.log

对应参数说明
-p指定包名
–throttle 100 MILLISEC事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件
–ignore-crashes作用:通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
–ignore-timeouts作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
–ignore-security-exception 作用:通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
–ignore-native-crashes忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止
–monitor-native-crashes 监视崩溃时的本地代码
-v 每个-v都将增加反馈信息的级别。共3个级别,因此,-v -v -v可以提供最详细的设置信息。
1000000 这里是指点击的次数
>d:\mylog.log 日志输出

    原文作者:waiwaaa
    原文地址: https://www.jianshu.com/p/f332c1b01db7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞