zoukankan      html  css  js  c++  java
  • MonkeyRunner简介

    monkeyrunner工具提供了编写控制Android设备或仿真器从Android的代码之外程序的API。随着monkeyrunner,您可以编写安装一个Android应用程序或测试包,运行它,发送击键它,需要它的用户界面截图,并将截图工作站上的Python程序。该monkeyrunner工具主要设计在功能/框架水平和运行单元测试套件来测试应用程序和设备,但你可以自由地将其用于其它用途。

    monkeyrunner工具为Android的测试,这些独特的功能:

    1.多设备控制:monkeyrunner API可以跨多个设备或仿真器应用一个或多个测试套件。您可以物理连接的所有设备或启动了所有的仿真器(或两者兼有)同时,连接到每一个轮流程序,然后运行一个或多个测试。您也可以启动一个模拟器配置编程,运行一个或多个测试,然后关闭模拟器。
    2.功能测试:monkeyrunner可以运行Android应用程序的自动启动到完成测试。您提供的输入值与键盘或触摸事件,并查看结果的截图。
    3.回归测试 - monkeyrunner可以运行一个应用程序,并比较其输出截图一组被称为是正确的截图测试应用程序的稳定性。
    4.可扩展的自动化-由于monkeyrunner是一个API工具包,你可以开发基于Python模块和控制Android设备程序的整个系统。除了 ​​使用monkeyrunner API本身,你可以使用标准的Python OS和 子 模块的调用Android的工具,比如 Android的调试桥。

    monkeyrunner 的三个模块

    所述monkeyrunner API被包含在包中的三个模块 com.android.monkeyrunner:
    1.MonkeyRunner:一类为monkeyrunner程序的实用方法。这个类提供了用于连接monkeyrunner至设备或模拟器的方法。它也提供了用于创建用户界面的monkeyrunner程序和用于显示内置帮助的方法。
    2.MonkeyDevice:表示一个设备或模拟器。这个类提供了安装和卸载程序包,启动一个活动以及发送键盘或触摸事件到应用程序的方法。您也可以使用这个类来运行测试包。
    3.MonkeyImage:表示一个屏幕捕获图像。这个类提供了捕捉屏幕,将位图图像,以各种不同的格式,比较两个MonkeyImage对象,写一个图像文件的方法。

    1
    2
    3
    4
    #导入三个模块MonkeyRunner,MonkeyDevice,MonkeyImage
    from com.android.monkeyrunner import MonkeyRunner as mr
    from com.android.monkeyrunner import MonkeyDevice as md
    from com.android.monkeyrunner import MonkeyImage as mi

    monkeyrunner的接入设备API

    adb devices 命令可以获取设备对象的名称

    1
    2
    3
    #获取接入的设备,前面的为等待时间(s),后面正则或者设备的全名,返回一个device对象
    #device=mr.WaitForConnection(1,'ss1z1')
    device=mr.WaitForConnection()

    安装apk

    device.startActivity("package名/activity名")

    1
    device.installPackage('myproject/bin/MyApplication.apk')

    卸载,这应该是应用的包名

    1
    device.removePackage ('com.example.android.notepad')

    启动入口活动

    1
    device.startActivity (component='com.android.htccontacts/com.android.htccontacts.ContactsTabActivity')

    等待时间,秒

    1
    mr.sleep(3)

    唤醒屏幕

    1
    mr.wake()

    触摸屏幕,x,y坐标,触摸类型三种,UP,DOWN,DOWN_AND_UP

    1
    device.touch(10,20,DOWN_AND_UP)

    设备屏幕上模拟拖曳

    用法:MonkeyDevice.drag(start,end,duration,steps)
    start:拖曳开始坐标 - The starting point for the drag (a tuple (x,y) in pixels)
    end:拖曳结束坐标点- The end point for the drag (a tuple (x,y) in pixels
    duration:持续时间 - Duration of the drag in seconds (default is 1.0 seconds)
    steps:拖曳步骤- The number of steps to take when interpolating points. (default is 10)

    1
    device.drag((472,1067),(482,560))  

    按键指令,前面为按键名称,如HOME键

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    home键:KEYCODE_HOME
    back键:KEYCODE_BACK
    send键:KEYCODE_CALL
    end键:KEYCODE_ENDCALL
    上导航键:KEYCODE_DPAD_UP
    下导航键:KEYCODE_DPAD_DOWN
    左导航:KEYCODE_DPAD_LEFT
    右导航键:KEYCODE_DPAD_RIGHT
    ok键:KEYCODE_DPAD_CENTER
    上音量键:KEYCODE_VOLUME_UP
    下音量键:KEYCODE_VOLUME_DOWN
    power键:KEYCODE_POWER
    camera键:KEYCODE_CAMERA
    menu键:KEYCODE_MENU
     
    device.press('KEYCODE_HOME','DOWN_AND_UP')

      

    输入一个字符串

    device.type("你好")

    获取monkeyrunner的帮助

    1
    device.help()

    获取设备系统环境变量的名称

    1
    device.getProperty()

    重启设备

    1
    device.reboot()

    一些图片的操作API

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #获取截图
    result1=device.takeSnapshot()
    #将结果输出到文件,前面为路径,后面为图片类型,可写可不写
    result1.writeToFile('D:/demo1.png','png')
    #两种写法都可以
    result1.writeToFile('D:\demo1.png','png')
    #将当前图像转换为一个特定的格式并将其作为字符串返回,然后你可以访问的iterable二进制字节。
    result.convertToBytes()
    #图片的对比,先获取第二张截图
    result2=device.takeSnapshot()
    result2.writeToFile('D:/demo2.png','png')
    #判断图片相识度是否是为90%
    if(result1.sameAs(result2,0.9)):

      

  • 相关阅读:
    x64 平台开发 Mapxtreme 编译错误
    hdu 4305 Lightning
    Ural 1627 Join(生成树计数)
    poj 2104 Kth Number(可持久化线段树)
    ural 1651 Shortest Subchain
    hdu 4351 Digital root
    hdu 3221 Bruteforce Algorithm
    poj 2892 Tunnel Warfare (Splay Tree instead of Segment Tree)
    hdu 4031 Attack(BIT)
    LightOJ 1277 Looking for a Subsequence
  • 原文地址:https://www.cnblogs.com/chenwolong/p/MonkeyRunner.html
Copyright © 2011-2022 走看看