Monkey详解(脚本篇---Monkey API)
来源:互联网 发布:python url解码 编辑:程序博客网 时间:2024/05/17 23:19
本篇我们将讲述常用的五个Monkey API。目的在于完成一个简单的测试脚本。
(一)五个常用API
(1)如何开启Activity
开启一个Activity需要两个参数:Package和Activity
LaunchActivity(com.breakloop.butterknifedemo,com.breakloop.butterknifedemo.MainActivity);
(2)如何选择控件
控件的选择包括两个Event,EVENT_DOWN和EVENT_UP。
因此需要调用两次API,来选中控件。
先看一下API
DispatchPointer(downTime, eventTime,action, x, y, pressure, size, metaState, xPrecision, yPrecision,device, edgeFlags)
API有13个参数,但我们只关注第三,四,五个。
注:对于其他参数的含义,感兴趣的同学可以google一下。
action即为Event,EVENT_DOWN为0,EVENT_UP为1。
而x,y则是我们在上一博文中所讲的坐标。
(3)如何输入数据
DispatchString(str)
注:API中直接输入String数值即可,无需带双引号“”
(4)按下键值
DispatchPress(key_code)
具体key_code值,可以android developer。常用键,例如回车,值为66。
通常在输入数据后,都需要回车,以保住数据确实被输入至控件中(针对输入法)。
(5)等待
UserWait(ms)
单位为毫秒。通常用在耗时操作后,以等待操作完成,例如启动activity,或数据输入。
(二)脚本头,注释
Monkey的脚本头如下
# Start of Script type= user count= 1 speed= 1.0 start data >>
“type”为脚本类型,可以自定义,无有效意义。
“count”为脚本的执行次数。但修改也无效。
“speed”为执行速度。但修改也无效。
“start data >>”之后将为脚本主体(APIs)。
脚本使用“#”进行单行注释
(三)编写脚本
我们利用前两部分的知识,对APP进行测试。
需求:
(1)启动activity
(2)输入数据
(3)点击按钮
首先,通过getevent获取控件坐标绝对值,并进行转换。
EditView(376,1119)
Button Show(555,1538)
Button A(127,774)
Button B(394,781)
Button C(747,808)
Button D(986,791)
直接上脚本
#Monkey Scripttype = userspeed = 1count = 1start data >>#Open ActivityLaunchActivity(com.breakloop.butterknifedemo,com.breakloop.butterknifedemo.MainActivity)UserWait(500)#Select EditDispatchPointer(0,0,0,376,1119,0,0,0,0,0,0,0)DispatchPointer(0,0,1,376,1119,0,0,0,0,0,0,0)UserWait(500)#Input ContentDispatchString(12345678)#UserWait(500)#Confirm Input in Flip#DispatchPointer(0,0,0,989,1726,0,0,0,0,0,0,0)#DispatchPointer(0,0,1,989,1726,0,0,0,0,0,0,0)#UserWait(500)#Close Flip#DispatchPointer(0,0,0,1012,1093,0,0,0,0,0,0,0)#DispatchPointer(0,0,1,1012,1093,0,0,0,0,0,0,0)DispatchFlip(false)UserWait(500)#Click Button ShowDispatchPointer(0,0,0,555,1538,0,0,0,0,0,0,0)DispatchPointer(0,0,1,555,1538,0,0,0,0,0,0,0)UserWait(500)#Click Button ADispatchPointer(0,0,0,127,774,0,0,0,0,0,0,0)DispatchPointer(0,0,1,127,774,0,0,0,0,0,0,0)UserWait(500)#Click Button BDispatchPointer(0,0,0,394,781,0,0,0,0,0,0,0)DispatchPointer(0,0,1,394,781,0,0,0,0,0,0,0)UserWait(500)#Click Button CDispatchPointer(0,0,0,747,808,0,0,0,0,0,0,0)DispatchPointer(0,0,1,747,808,0,0,0,0,0,0,0)UserWait(500)#Click Button DDispatchPointer(0,0,0,986,791,0,0,0,0,0,0,0)DispatchPointer(0,0,1,986,791,0,0,0,0,0,0,0)UserWait(500)
将脚本保存为script,文件无后缀名。
(四)执行脚本
需要将脚本拷贝至设备,才能执行。
C:\Users\XXXX>adb push C:\D\Monkey\script data/data/com.breakloop.butterknifedemoC:\D\Monkey\script: 1 file pushed. 0.1 MB/s (1300 bytes in 0.009s)C:\Users\XXXX>adb shell monkey -f data/data/com.breakloop.butterknifedemo/script -v 1 >C:\D\Monkey\Log.txt// Shell command input text 12345678 status was 0C:\Users\XXXX>
显示效果如下:
(五)总结
常见的Monkey API还有很多,但相对不常用。例如
LongPress(Key_code)//长按DispatchTrackball()//轨迹球DispatchKey//发送键值DispatchFlip(isOpen)//开关软键盘
至此,Monkey API部分完结。
我们不必纠结于掌握的Monkey API过少,因为Monkey是最基本的测试工具(相当于CMD)。经过多层的封装后,其交互会更为友好。之后,我们会总结MonkeyRunner(相当于VS),相对Monkey,它的使用将更为方便。
- Monkey详解(脚本篇---Monkey API)
- Monkey详解(脚本篇---获取坐标)
- Monkey详解(入门篇)
- monkey脚本
- monkey脚本
- Monkey API学习与脚本编写小记
- Monkey API学习与脚本编写小记
- Monkey API学习与脚本编写小记
- Monkey详解(限制型指令篇)
- Monkey详解(事件型指令篇)
- monkey 详解
- Monkey详解
- monkey
- monkey
- monkey
- Monkey
- Monkey
- monkey
- 阴阳师PC官网(仿-->17/5月) -- 知识点
- 爬虫学习笔记(一)——Requests
- TCP的流量控制
- 第一天学php
- C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(二) ---学生信息管理系统
- Monkey详解(脚本篇---Monkey API)
- 调用Word组件转pdf遇到的烦恼与解决方案
- 算法提高 ADV-75 简单计算器
- Android三级缓存的基础框架学习
- Struts 2框架下载png、excel等格式的文件
- likely()与unlikely()函数
- 如何查询自己的公网IP
- Linux学习-001
- struts2环境搭建和入门程序