zoukankan      html  css  js  c++  java
  • Monkeyrunner介绍

    Monkeyrunner概述

    Monkeyrunner是由Google开发、用于android系统的自动化测试工具,由android系统自带,存在于android sdk中(sdk:software development kit,软件开发工具包)
    Monkeyrunner提供了一个API,用此API写出的程序可以在Android代码之外控制Android设备和模拟器。(API: Application Programming Interface 应用 程序接口)
    Monkeyrunnerd主要设计目的:用于测试功能/框架水平上的应用程序和设备,或运行单元测试套件。
    Monkeyrunner通过运行python脚本,来执行脚本中预先定义好的一系列操作事件,如:安装卸载某个应用、进入任一模块、点坐标、按键、编辑文本、截图对比等
     

    Monkeyrunner API类别

    MonkeyRunner为MonkeyRunner程序提供工具方法的类。

            这个类提供了用于连接MonkeyRunner至设备或模拟器的方法。

           它还提供了用于创建一个MonkeyRunner程序的用户界面以及显示内置帮助的方法。

    MonkeyDevice表示一个设备或模拟器。

           这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序      的方法。您也可以用这个类来运行测试包。

    MonkeyImage 表示一个截图对象。

      这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。

    Monkeyrunner特性

    多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。
    功能测试: monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
    回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
    可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用Android Debug Bridge这样的Android工具
     
     
    Monkeyrunner使用
    1.环境配置
    安装JDK:android--sdk需要在java环境及jdk下运行
    解压android--sdk: 包含tools及platform-tools两文件夹,monkeyrunner存在于tools文件夹下, adb存在于platform-tools文件夹下
    添加环境变量: 将tools及platform-tools的路径添加至环境变量中 
    验证环境配置:cmd下分别输入java –version、monkeyrunner ,若返回版本号,则表明环境配置成功
    2.MR运行

    方法一:命令行输入,适用单行调试

    打开cmd窗口
    输入:monkeyrunner  ----启用monkeyrunner
    输入:from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage               ----导入monkeyrunner API
    输入:device = MonkeyRunner.waitForConnection() ----连接设备
    输入:device.type(‘10010’)                  ----指定操作,输入10010
     

    方法 二:将操作写入python脚本,直接运行该脚本

    打开cmd窗口

    输入:monkeyrunner –v  INFO + 脚本路径
     
     
    3.脚本编写
     

    常用语句

    device.wake( )

    点亮屏幕

    device.type('10086')

    输入10086

    MonkeyRunner.sleep(3)

    等待3s

    device.drag((236,440),(236,300),2,10)

    滑屏:起点坐标(236,440),终点坐标(236,300)

    device.drag((236,440),(236,440),2,10)

    长按

    device.touch(170,524,'DOWN_AND_UP')

    点击屏幕某处,

    坐标值为(170,254)

    device.press('KEYCODE_VOLUME_UP','DOWN_AND_UP')

    增大音量

    device.press('KEYCODE_VOLUME_DOWN','DOWN_AND_UP')

    减少音量

    常用语句

    device.press('KEYCODE_HOME','DOWN_AND_UP')

    返回主界面

    device.press('KEYCODE_BACK','DOWN_AND_UP')

    返回上一级菜单

    device.press('KEYCODE_MENU','DOWN_AND_UP')

    进入菜单页

    device.press('KEYCODE_CALL','DOWN_AND_UP')

    进入拨号页或点按拨号键

    device.press('KEYCODE_DPAD_UP','DOWN_AND_UP')

    向上移动光标

    device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')

    向下移动光标

    device.press('KEYCODE_DPAD_LEFT','DOWN_AND_UP')

    向左移动光标

    device.press('KEYCODE_DPAD_RIGHT','DOWN_AND_UP')

    向右移动光标

    安装Python或Ulipad:用于查看、编写monkeyrunner脚本,Ulipad更直观、方便

    运行recorder.py,利用monkeyrunner的录制功能编写脚本

  • 相关阅读:
    Win10 字体模糊解决(DPI缩放禁用),设置默认输入法英文
    windows下使用VS2015编译V8 JavaScript引擎(v5.5
    GDB 多线程调试:只停止断点的线程,其他线程任然执行; 或只运行某些线程 其他线程中断
    wget 显示"英国中部时间",去掉烦人的刷屏显示
    阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
    CSS
    bootstrap4 调整元素之间距离
    数据库文件结构、sqlserver ON [PRIMARY]
    快速查看数据库中每个表的数据条数
    关于LINQ中SELECT NEW 的问题
  • 原文地址:https://www.cnblogs.com/ccxniit2004/p/3616705.html
Copyright © 2011-2022 走看看