介绍下monkey

文章目录

  • 1. 基本语法
  • 2. 保存日志
  • 3. 黑白名单的使用
  • 4. 停止monkey
  • 5. monkey脚本

1. 基本语法

UI/Application Exerciser Monkey

adb shell monkey [options] <event-count>

options可以分为以下5个类型:

  1. 基本配置参数

    参数 说明
    -help 输出monkey的使用指南
    -v 表示打印信息的级别,可以在命令行中出现多次,每一个v选项都会增加monkey向命令行打印输出的详细级别。默认的0只会打印启动信息、测试完成信息和最终的结果信息。级别1会打印测试执行的一些信息,级别2会打印最详细的信息。
  2. 事件类型参数

    参数 说明
    -s <随机数> 通俗一点说monkey测试都是一些随机操作,如果一次操作中出现了bug,如果要复现bug是比较难的。在每次操作的时候加上一个seed值,现在操作只要seed值是一样的,就能帮助我们复现操作。
    –throttle <毫秒数> 有时候monkey执行事件很快,肉眼根本看不清点击事件,加上这个参数可以控制每个事件之间的间隔数,使得执行动作慢下来,方便我们查看
    –pct-touch <百分比> 设置触控事件生成的比例
    –pct-motion <百分比> 设置滑动事件的生成比例
    –pct-trackball <百分比> 设置轨迹事件的比例
    –pct-nav <百分比> 设置“基本”的导航事件的生成比例。导航事件是指模拟方向性设备输入向上/下/左/右导航操作
    –pct-majornav <百分比> 设置轨迹事件的比例
    –pct-syskeys <百分比> 设置系统按键消息的比例,系统中保留的按键消息,如:首页(home)、后退(back)、拨号、挂断、音量控制键
    –-pct-appswitch <百分比> 设置启动活动的事件比例,每隔一段随机时间,monkey就会调用startActivity()函数来尽可能地覆盖待测应用的界面
    –-pct-anyevent <百分比> 设置其他事件的比例,包括普通的按键消息,设备上一些不常用的按键等
  3. 约束性参数

    参数 说明
    -p <包名> 使用这个参数可以指定一个或几个包名,monkey就只会测试这些包中的活动,同时设置多个包名时,每个包需要用“-p”参数制定
    -c<意图的种类> 定意图的种类,这样monkey只会启动可以处理的这些种类的意图活动,如果没有设定这个选项,monkey只会启动列有Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY的活动
  4. 调试类参数

    参数 说明
    –dbg-no-events 指定了这个选项,monkey知会启动待测程序,不会发送消息
    –hprof 如果指定了这个选项,monkey会在发送事件的前后生成性能报告
    -ignore-crashes 一般情况下,monkey会在待测应用奔溃或者发生未处理异常后停止运行,如果指定了这个选项,会继续向系统发送消息,直到指定个数的消息发送完毕
    –ignore-timeouts 通常情况下,当应用程出现 应用程序没有响应 对话框monkey会停止,如果指定这个选项,monkey将继续向系统发送事件,直到完成
    –ignore-security-exceptions 通常情况下,当应用程序发生权限错误(如启动一个需要某些许可的Activity)如果指定这个选项,monkey将继续向系统发送事件,直到完成
    –kill-process-after-error 这个选项可以通知系统当应用发生错误时杀掉进程
    –monitor-native-crashes 监控和报告Android系统中本机代码的崩溃事件,如果-kill-process-after-error设置,系统将停止
    –wait-dbg 启动monkey后,先中断其运行,等待调试器附加上来
  5. 隐藏的参数类型

    参数 说明
    -pck-blacklist-file <黑名单文件> 设置该选项后,monkey将不测试该名单中的包,文档中每包名写一行
    -pck-whitelist-file <白名单文件> 设置该选项后,monkey只测试该名单中的包,文档中每包名写一行
    -f <脚本文件> 设置monkey执行自定义脚本文件

比如:

# 启动指定app,向其发送100个伪随机事件
adb shell monkey -p [packagename] -v 100

2. 保存日志

# 保存运行日志到D盘下的 log.log文件中
adb shell monkey -p [packagename] -v -v -v 1000 >D:\log.log

3. 黑白名单的使用

pck-blacklist-file <黑名单文件>pck-whitelist-file <白名单文件>,两者同一时间只能使用一个,不能同时使用

  1. 第一步建立黑白名单文件,黑白名单文件为文本格式,里面存储的是要列入黑白名单的包名,用回车换行区
    分,一行一个包名,比如创建黑名单black.txt

    com.test.app
    com.zui.player
    
  2. 第二步将刚建好的文件push到手机上,如:

    adb push D:\black.txt /sdcard/monkeytest
    

    执行命令

    adb shell monkey --pkg-blacklist-file /sdcard/monkeytest/black.txt --throttle 500  -v -v -v 1000
    

4. 停止monkey

Monkey一旦运行起来,就无法停止,直到事件完成或者异常终止执行(不能选择上述命令中忽略崩溃命令),但是我们可以通过杀进程的方式终结monkey

# 获取monkey 的 PID,应该是 com.android.commands.monkey
adb shell ps | grep monkey
# 杀进程
adb shell kill [pid]

5. monkey脚本

有时候我们不想让它随机执行,通过脚本可以让测试按照我们自定义的流程来执行。使用-f参数就可以执行Monkey的脚本了 adb shell monkey -f

你可能感兴趣的:(Android,面试,Android进阶,压力测试)