简介:
1、monkey程序由android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar
2、Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey
3、Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行测试,检测程序多久的时间会发生异常。
monkey命令格式:
adb shell monkey [options] <event-count>
adb shell monkey 800
monkey操作事件:
1.触摸事件 --ptc touch 触摸事件百分比
2.手势事件 --ptc motion 动作事件百分比
3.二指缩放事件 --ptc trackball 轨迹球事件百分比
4.轨迹事件 --ptc nav 基本导航事件百分比
5.屏幕旋转事件 --ptc majornav 主要导航事件百分比
6.基本导航事件 --ptc syskeys 系统按键事件百分比
7.主要导航事件 --ptc appswitch 应用启动事件百分比
8.系统按键事件 --ptc anyevent keypress
9.启动Activty事件 --ptc anyevent 不常用的button
10.键盘事件 --ptc anyevent 其他未涉及的事件
11.其他类型事件
monkey参数:
常规类参数
事件类参数
约束类参数
调试类参数
常规类参数:
帮助类参数
monkey -h adb -s 127.0.0.1:62025 shell monkey -v 100
monkey -v -v -v 越多越详细 一般一个两个 adb shell monkey -v 100
事件类参数:
1.执行指定脚本
adb shell monkey -f /mnt/sdcard/test1
2.伪随机数生成种子值 默认:Monkey: seed=1558988255085 count=100 1558988255085不固定,count事件数100
adb shell monkey -s 8888 100 8888是种子值
3.设置间隔
adb shell monkey --throttle 3000 100 3秒 =--throttle
设置事件百分比:
调整触摸事件百分比
adb shell monkey -v --pct-touch 100 200 100%
adb shell monkey -v --pct-touch 30 --pct-motion 40 200 30%touch 40% motion
调整启动事件的百分比
adb shell monkey -v --pct-appswitch 40 200
调整屏幕旋转事件的百分比
adb shell monkey -v --pct-rotation 60 200
adb shell monkey -f 测试脚本名运行
adb shell monkey -s 随机运行
约束类参数:
adb shell monkey -p com.wyjr.jinrong 200 wyjr
adb shell monkey -v -p com.wyjr.jinrong -p com.tencent.mm 200 wyjr and wechat
限制在一个或多个类别里
adb shell monkey -c Intent.CATEGORY_LAUNCHER 100 进行Intent.CATEGORY_LAUNCHER的Activity发送100个随机事件
调试类参数:
1.应用程序崩溃后继续发送事件 adb shell monkey --ignore-crashes
2.超时错误继续发送事件 adb shell monkey --ignore-timeouts
3.应用程序权限错误发送事件 adb shell monkey --ignore-exceptions
4.其他...蛮多 adb shell monkey --dbg-no-events
综合案例:
adb shell monkey -p com.wyjr.jinrong --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 1666 --throttle 400 --ignore-crashes --ignore-timeouts -v -v 400
自定义monkey脚本:
获取元素坐标点 --开发者选项--指针位置
monkey脚本API部分简介:
LaunchActivity(pkg_name, d_name) 启动应用的Activity 参数:包名和启动的Activity
Tap(x, y, tapDuration) 模拟一次手指单机事件,参数:x,y为控件坐标, tapDurtion为点击的持续事件
UserWait(sleeptime) 休眠时间
DispatchPress(keyName) 按键,参数:keycode. RotateScreen(rotationDegree,persist):旋转屏幕,参数0表示90度;persist表示旋转后是否固定,0表示旋转后恢复,非0表示固定不变。
DispatchString(input) 输入字符串
DispatchFlip(true/false) 打开/关闭软键盘
PressAndHold(x, y , pressDuration) 模拟长按事件
Drag(xStart, yStart, xEnd, yEnd, steoCount) 拖拽事件
PinchZoom(x1Start,y1Start,x1End,y1End, x2Start,y2Start,x2End,y2End,stepCount) 模拟缩放手势
LongPress() 长按2秒
DeviceWakeUp() 唤醒屏幕
PowerLog(power_log_type, test_case_status) 模拟电池电量信息
WriteLog() 将电池信息写入sd卡
RunCmd(cmd) 运行shell命令
DispatchPointer
DispatchTrackball 模拟发送轨迹球事件
ProfileWait 等待5秒
StartCaptureFramerate() 获取帧率
EndCaptureFramerate(input) 结束时获取帧率