monkeyrunner1

作者: bling8090 | 来源:发表于2018-03-16 13:56 被阅读0次

    一、monkey与monkeyrunner比较:

             monkey:较难支持插件编写;无截屏功能;对数据流控制能力弱;无法完成录制功能。

    二、monkeyrunner的API分为三类

              1、monkeyrunner API:提供用于连接monkeyrunner和设备的方法;其中有一个方法waitforConnection()引出monkeyDevice。

              2、MonkeyDevice API:提供安装卸载应用、启动应用、发送按键和触摸事件等操作的方法;其中一个方法takeSnapshot()引出monkeyImage

                           (1) broadcastIntent()发送广播       

                           (2) drag()拖动

                           (3)getProperty()获取当前设备属性    

                           (4) touch()点击

                           (5)type()输入        

                           (6) wake()唤醒设备       

                           (7) press()按键

               3、monkeyImage API:提供图像保存、格式转换、图像截取和坐标点获取等方法。

    三、monkeyrunner的基本API:手势、输入、点击

                1、拖拽手势操作:如touch、hold、move等

                      (1)void drag(start,end,duration,steps)

                                 start:起始位置坐标;数据类型为tuple数组形式

                                 end:终止位置坐标;数据类型为tuple数组形式

                                 duration:持续时间;数据类型为float;默认值为:1.0秒

                                 steps:步数;数据类型为integer;默认值为10

                       (2)脚本式例:

                                  如:向左滑动切换界面

                                 #固定格式,导入MonkeyDevice API

                                 from com.android.com.monkeyrunner import MonkeyRunner,MonkeyDevice

                                 #设置拖动元素的值

                                 start = (400,200) #初始坐标值

                                 end = (60,200)#结束坐标值

                                 duration = 1.0#持续时间(拖动时间)1.0秒

                                steps = 10

                                 #连接monkeyrunner

                                device = MonkeyRunner.waitForConnection()

                                 #执行拖动操作以滑动屏幕

                                 device.drag(start,end,duration,steps)

                2、输入操作:void type(message)

                                 message:输入的字符串;数据类型为String;

                3、点击操作:void touch(x,y,type)

                                 x:坐标值x;数据类型integer

                                 y:坐标值y;数据类型integer

                                 type:key event按键类型;数据类型integer;如:DOWN、UP、DOWN_AND_UP

    四、脚本式例:

                        实现目标:安装某应用并启动,打开文本框输入账号abc和密码111,登陆成功后滑动到第二页查看信息。

                        #固定格式,导入MonkeyDevice API

                        from com.android.com.monkeyrunner import MonkeyRunner,MonkeyDevice

                        #设置具体元素值:touch()点击文本框、type()输入字符串、drag()拖动界面

                        #drag(start,end,duration,steps)、type(message)、touch(x,y,type)

                         x1 = 290

                        y1 = 330         # 账号文本框坐标

                        x2 = 290

                        y2 = 430         # 密码文本框坐标

                         x3 = 380

                         y3 = 550        # 登陆坐标

                         type = DOWN_AND_UP

                         second1 = 2

                         second2 = 1

                         second3 = 3

                         message1 = abc

                         message2 = 111

                         start = (670,860)

                         end = (95,860)

                         duration = 1.0

                          steps = 10

                         #设置启动的包名和启动应用的主界面名并添加分隔符“/”

                         package = ‘com.wuba.zhuanzhuan’

                         activity = ‘.presentation.view.activity.LaunchActivity’

                         component = package +’/’+ activity

                         #连接monkeyrunner

                         device = MonkeyRunner.waitForConnection()

                         #安装wuba.zhuanzhuan.apk

                         device.installPackage(‘./wuba.zhuanzhuan.apk’)

                         print ‘Installing wuba.zhuanzhuan.apk...’

                         #启动app

                         device.startActivity(component)

                         print ‘Launching zhuanzhuan...’

                         #等待几秒钟使主界面加载完毕

                         MonkeyRunner.sleep(second1)

                         #打开文本框并输入账号和密码

                         device.touch(x1,y1,type)

                         device.type(message1)

                         device.press(‘KEYCODE_ENTER’ , ’DOWN_AND_UP’)#按下虚拟键盘中的enter键并发送,以确保字符串能够输入

                         device.touch(x2,y2,type)

                         device.type(message2)

                         device.press(‘KEYCODE_ENTER’ , ’DOWN_AND_UP’)

                         #等待1秒钟使之加载完毕

                         MonkeyRunner.sleep(second2)

                         #点击登陆按键

                         device.touch(x3,y3,type)

                         #等待几秒钟确保登陆并加载界面完成

                         MonkeyRunner.sleep(second3)

                         #向左滑动查看界面

                         device.drag(start,end,duration,steps)

                         #等待几秒钟确保加载界面完成

                         MonkeyRunner.sleep(second3)

    相关文章

      网友评论

        本文标题:monkeyrunner1

        本文链接:https://www.haomeiwen.com/subject/vgnlqftx.html