android adb学习笔记(二)

Android Monkey的用法

一、monkey简介

  • monkey官方文档(需要FQ)
  • monkey源码
  • monkey是一个命令行工具,可以运行在Android模拟器或真实设备中。它可以向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的目标应用或整个Android系统进行压力测试。因为monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法
  • 基本语法
$adb shell monkey 「option」 <event-count>

 如果不指定options,即类似于使用adb shell monkey 1000,那么将会对整个系统中安装的package发送事件流,换种说法就是对整个Android系统进行monkey压力测试

这是一个对指定应用(Android自带的系统设置应用)进行monkey测试的栗子,发送的事件流数量为1000:

场景1:在PC端执行monkey命令,将日志保存至D盘monkey.log
$adb shell monkey -p com.android.settings 1000 > d:\monkey.log
场景2:在PC端执行monkey命令,将日志保存至手机sdcard
$adb shell "monkey -p com.android.settings 1000 > sdcard/monkey.log"

二、monkey命令选项

  • 获取选项列表,Android9版本中输入adb shell monkey,会显示选项列表如下:

常用选项及参数说明

  • -p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。包名的获取,可参考 python 脚本get_package_name.py
  • —ignore-crashes 忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey 会自动停止发送事件,指定该参数后,mongkey 会在 crash 后也一直发送事件,知道所有事件发送完成
  • —ignore-timeouts 忽视超时导致的错误,即ANR的错误
  • —ignore-security-exceptions 忽视权限方面的错误
  • —monitor-native-crashes 监控由 C/C++ 代码引起的 crash
  • —ignore-native-crashes 忽视由 C/C++ 代码引起的 crash
  • —kill-process-after-error 当出现错误后杀掉应用的进程
  • —hprof 指定该选项后,monkey会在发送事件完成后生成性能报告,报告一般存放于/data/misc目录下,对报告的分析,需要使用Traceview
  • —pct-touch 设定 touch 事件比例
  • —pct-motion 设定手势事件比例,例如滑动事件
  • —pct-trackball 设定跟踪球事件的比例
  • —pct-syskeys 设定系统按键事件的比例,如 Home、Back、音量+/-等
  • —pct-nav 设定”基本”导航事件的比例
  • —pct-majornav 设定”主要”导航事件比例
  • —pct-appswitch 设定启动 Activity 的事件比例
  • —pct-pinchzoom 设定缩放事件比例
  • —pct-anyevent 设定其他事件比例
  • -s 设定种子数,方便用于重现 bug
  • -v 设定输出信息的详细级别,1个 -v 表示级别为1,2个 -v 表示级别为2
  • —throttle 设定事件之间的延时,单位为毫秒
    • 如果不指定这个参数,monkey会尽可能快的生成和发送消息
    • 命令:adb shell monkey -p 包名 --throttle 3000 100
  • COUNT 事件数目

结束Monkey进程

执行 Monkey 的过程中如果想中途停止 Monkey 程序的运行,需要将 Monkey 的进程杀掉。

  • windows 下使用findstr,linux/mac 下用grep
  • 执行adb shell ps | findstr monkey
  • 获取到 monkey 进程的 pid 之后运行adb shell kill 进程ID

最后

 对这些命令都熟悉之后,那么接下来就是综合对编程语言的应用,思考如何用语言去处理这些命令,使得这些命令更加的方便于测试工作。github

猜你喜欢

转载自www.cnblogs.com/helloTerry1987/p/11029190.html