1.常用monkey脚本API介绍
# 启动应用的Activity
参数:包名和启动的Activity
LaunchActivity(pkg_name, cl_name)
# 模拟一次手指单击事件
参数:x,y为控件坐标,tapDuration为点击的持续时间
Tap(x, y, tapDuration)
# 休眠一段时间
UserWait(sleepTime)
# 输入字符串
DispatchString(input)
# 打开或者关闭软键盘
DispatchFlip(true/false)
# 模拟用户的长按事件
PressAndHold(x, y, pressDuration)
# 用于模拟用户的一个拖拽操作
Drag(xStart, yStart, xEnd, yEnd, stepCount)
# 模拟用户的缩放手势
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount)
# 长按2秒
LongPress()
# 唤醒屏幕
DeviceWakeUp()
# 等待5秒
ProfileWait
# 获取帧率
StartCaptureFramerate()
# 结束获取帧率
EndCaptureFramerate(input)
# 用来模拟电池电量信息
PowerLog(power_log_type, test_case_status)
# 将电池信息写入sd卡
WriteLog()
# 运行shell命令
RunCmd(cmd)
# 执行一个instrumentation测试用例
LaunchInstrumentation(test_name,runner_name)
# 向指定的位置,发送单个手势
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags)
# 发送按键消息
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags)
2.monkey脚本的格式
Monkey 的脚本内容主要包含两部分:一个是头文件信息,另一个是具体的Monkey命令
脚本格式:
type = raw events # = 两边一定要留空格,如果不留空格的话会报错
count = 1 # 指脚本执行的次数
speed = 1.0 # 指脚本执行的速率
# 下面为monkey命令
start data >>
# 具体的monkey脚本内容
3.实际例子
以豌豆荚App为例
(1)安装豌豆荚App
打开cmd命令行输入如下命令:
adb install E:\DownLoad\Test\豌豆荚.apk
(2)查看豌豆荚的Activity
a.首先安装AndroidSDK,然后配置aapt环境变量(路径:D:\Android\AndroidSDK\build-tools\28.0.3)
b.打开cmd,输入如下命令
aapt dump badging E:\DownLoad\Test\豌豆荚.apk > E:\test.log
c.去对应的路径打开test.log文件
按下快捷键Ctrl+F,通过package: name=查找包名,通过launchable-activity: name查找启动的Activity的名
(3)编写monkey脚本
a.新建wdj.txt文件,复制粘贴固定的头文件信息
# wdj.txt
# 头文件信息
type = raw events
count = 1
speed = 1.0
# 启动测试
start data >>
b.打开指针位置设置
路径:设置—>开发者选项—>指针位置
c.编写具体monkey指令
完整脚本如下:
# wdj.txt
# 头文件信息
type = raw events
count = 1
speed = 1.0
# 启动测试
start data >>
LaunchActivity(com.wandoujia.phoenix2,com.pp.assistant.activity.PPMainActivity)
UserWait(1000)
Tap(24.8,55.9,500) # 点击左上角图标进入管理页面
UserWait(1000)
Tap(91.8, 449.3,500) # 点击垃圾清理进入深度清理页面
UserWait(1000)
Tap(231.5,771,300) # 点击一键清理
(4)执行monkey脚本
在cmd命令行输入如下命令:
adb push E:\DownLoad\Test\wdj.txt /sdcard
adb shell monkey -f /sdcard/wdj.txt -v 1
(5)日志管理
adb shell monkey -f /sdcard/wdj.txt -v 1 1 > /存放路径/right.txt 2 > /存放路径/error.txt
例子的monkey脚本比较简单,更复杂的方法类似