手记

Android自动化测试-Monkey笔记

Monkey工具
简介:是Android自带的黑盒测试工具,一般通过随机(伪随机)出发界面时间,来确定应用是否会发生异常。多用于稳定性、压力测试。
命令:adb shell monkey [options] <event-count>
通用命令
1)-v 日志输出的级别,默认为0为最小级别,输出日志最小
21)--help
事件命令
2)-s <send> 指定事件的执行顺序
3)--throttle <milliseconds> 时间间隔
4)--pct-touch <percent> 触摸事件
20)--pct-motion <percent> 移动事件
5)--pct-trackball <percent> 轨迹球事件,不太常用
6)--pct-nav <percent> 导航事件
7)--pct-majornav <percent> 主要导航事件
22)--pct-syskeys <percent> 物理按键事件,比如Home, Back, Start Call(接听), End Call(挂段), Volume controls(音量键)
8)--pct-appswitch <percent> 调用应用的Activity()事件
9)--pct-anyevent <percent> 除此之外的事件
约束命令
10) -p <allowed-package-name> 指定测试应用的包名,不指定时随机触发应用
11)-c <main-category> 指定类别,不太常用
调试命令
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 <scrip> 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

//指定计算器随机执行1000次事件
adb shell monkey -p com.android.calculator2 1000
//提高日志输出级别
adb shell monkey -p com.android.calculator2 -v -v 100
//发送指定的序列执行
adb shell monkey -p com.android.calculator2 -s 1515943211589 -v -v 100
//上载脚本到设备上,执行monkey脚本并指定执行次数
adb push monkey.script /data/temp/monkey.script
adb shell monkey -f /data/temp/monkey.script 1
//Monkey日志运行含义
//指定使用工具Monkey seed指定了本次事件的序列  count事件总数
:Monkey: seed=1515943211589 count=100
//monkey.script
type= raw events
count= 10
speed= 1.0
start data >>

#两个参数一个包名 一个activity名,并不知道activity名从哪里获取的
LaunchActivity(com.android.calculator2,com.android.calculator2.Calculator)

#press 9
DispatchPointer(0,0,0,800,1100,0,0,0,0,0,0,0)
#弹起
DispatchPointer(0,0,1,800,1100,0,0,0,0,0,0,0)
UserWait(1500)
#按键事件
DispatchPress(KEYCODE_6)
UserWait(1500)
#加号
DispatchPress(KEYCODE_PLUS)
UserWait(1500)
#touch 7
Tap(100,900,50)
UserWait(1500)
#=
DispatchPress(KEYCODE_EQUALS)
UserWait(1500)
#翻转屏幕 0 1 2 3 分别代表不同的角度
RotateScreen(2,1)
UserWait(1500)
3人推荐
随时随地看视频
慕课网APP