查看: 926|回复: 0

[Android教程] Android自动化测试-Monkey笔记

发表于 2018-1-20 08:00:04

Monkey工具
简介:是Android自带的黑盒测试工具,一般通过随机(伪随机)出发界面时间,来确定应用是否会发生异常。多用于稳定性、压力测试。
命令:adb shell monkey [options]
通用命令
1)-v 日志输出的级别,默认为0为最小级别,输出日志最小
21)--help
事件命令
2)-s 指定事件的执行顺序
3)--throttle 时间间隔
4)--pct-touch 触摸事件
20)--pct-motion 移动事件
5)--pct-trackball 轨迹球事件,不太常用
6)--pct-nav 导航事件
7)--pct-majornav 主要导航事件
22)--pct-syskeys 物理按键事件,比如Home, Back, Start Call(接听), End Call(挂段), Volume controls(音量键)
8)--pct-appswitch 调用应用的Activity()事件
9)--pct-anyevent 除此之外的事件
约束命令
10) -p 指定测试应用的包名,不指定时随机触发应用
11)-c 指定类别,不太常用
调试命令
12)--dbg-no-events 会初始化启动一个测试的Activety
13)--hprof 在测试前后生成系统记录的信息
14)--ignore-crashes 常用,忽略crashes
15)--ignore-timeouts 忽略timeout
16)--ignore-security-exceptions 忽略安全验证
17)--kill-process-after-error 出现error的时候停止进程
18)--monitor-native-crashes 监控crashes
19)--wait-dbg 停止monkey直到调试器进行连接
隐藏命令
Monkey 脚本
23)-f 1 monkey脚本,1代表执行次数
①DispatchPointer 按机操作
②DispatchPress 向系统发送一个固定的按键事件 [keyEvent列表]
③LaunchActivity 启动应用
④UserWait 脚本暂停一段时间
⑤RotateScreen 反转屏幕
⑥Tap 单机事件
Monkey Server
简介:在设备上启动一个服务端,可以让PC端远程连接进行调试控制。说明文档地址。
24)adb shell monkey --port 1080 & 启动monkey server
25)adb forward tcp:1080 tcp:1080 端口映射
26)telent 127.0.0.1 1080 连接monkey server
① touch [down|up|move] [x] [y]
②press
③sleep
④getvar
⑤type

  1. //指定计算器随机执行1000次事件
  2. adb shell monkey -p com.android.calculator2 1000
  3. //提高日志输出级别
  4. adb shell monkey -p com.android.calculator2 -v -v 100
  5. //发送指定的序列执行
  6. adb shell monkey -p com.android.calculator2 -s 1515943211589 -v -v 100
  7. //上载脚本到设备上,执行monkey脚本并指定执行次数
  8. adb push monkey.script /data/temp/monkey.script
  9. adb shell monkey -f /data/temp/monkey.script 1
复制代码
  1. //Monkey日志运行含义
  2. //指定使用工具Monkey seed指定了本次事件的序列 count事件总数
  3. :Monkey: seed=1515943211589 count=100
复制代码
  1. //monkey.script
  2. type= raw events
  3. count= 10
  4. speed= 1.0
  5. start data >>
  6. #两个参数一个包名 一个activity名,并不知道activity名从哪里获取的
  7. LaunchActivity(com.android.calculator2,com.android.calculator2.Calculator)
  8. #press 9
  9. DispatchPointer(0,0,0,800,1100,0,0,0,0,0,0,0)
  10. #弹起
  11. DispatchPointer(0,0,1,800,1100,0,0,0,0,0,0,0)
  12. UserWait(1500)
  13. #按键事件
  14. DispatchPress(KEYCODE_6)
  15. UserWait(1500)
  16. #加号
  17. DispatchPress(KEYCODE_PLUS)
  18. UserWait(1500)
  19. #touch 7
  20. Tap(100,900,50)
  21. UserWait(1500)
  22. #=
  23. DispatchPress(KEYCODE_EQUALS)
  24. UserWait(1500)
  25. #翻转屏幕 0 1 2 3 分别代表不同的角度
  26. RotateScreen(2,1)
  27. UserWait(1500)
复制代码


回复

使用道具 举报