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的录制功能编写脚本

  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/ccxniit2004/p/3616705.html
Copyright © 2011-2022 走看看