zoukankan      html  css  js  c++  java
  • Android自动化测试------monkeyrunner(六)

    monkeyrunner

    1.简介

    monkeyrunner即android SDK中自带的工具之一,此工具提供API可按制android设备或模拟器。

    monkeyrunner提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。

    monkeyrunner工具的主要目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。

    monkeyrunner路径:Android SDK ools

    2.Monkeyrunner工具特性

    多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。

    功能测试:monkeyrunner可以为一个应用自动化功能测试。为您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。

    回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。

    可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用如adb这样的Android工具。

    3.Monkeyrunner工具同Monkey工具的差别

    Monkey:Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。

    Monkeyrunner:Monkeyrunner工具是在工作站上通过API定义的特定命令和事件控制设备或模拟器。

    4.MonkeyRunner API

    MonkeyRunner工具主要有3个类:

    1.MonkeyRunner

    2.MonkeyDevice

    3.MonkeyImage

    4.1MonkeyRunner类

    monkeyrunner提供连接真机和模拟器,输入,暂停,警告框等方法。

    alert():警告框

    choice():选项列表框

    help():API帮助文档

    input():输入

    sleep():暂停

    waitForConnection():等待设备连接

    常用方法:

    waitForConnection(float timeout,string deviceID)

    float timeout:等待时间(超过等待时间会超时)

    string deviceID:设备的ID

    4.2 MonkeyDevice类

    MonkeyDevice类提供了安装和卸载程序包,开启Activity,发生按键和点击事件,运行测试包等方法

    broadcastIntent():发送广播

    drag():拖动

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

    getSystemProperty():获取当前设备属性

    installPackage():安装应用

    instrument():执行测试用例

    press():按键

    reboot():重启

    removePackage():删除指定Package

    shell():执行命令

    startActivity():启动应用

    touch():点击

    常用方法:

    installPackage(string path)

    removePackage(string package)

    startActivity()

    touch(integer x,interger y,interger type)

    touch参数说明:

    integer x:x坐标值

    interger y:y坐标值

  • 相关阅读:
    javaweb消息中间件——rabbitmq入门
    virtual box 桥接模式(bridge adapter)下无法获取ip(determine ip failed)的解决方法
    Apache Kylin本地启动
    git操作
    Java学习总结
    Java中同步的几种实现方式
    hibernate exception nested transactions not supported 解决方法
    vue 中解决移动端使用 js sdk 在ios 上一直报invalid signature 的问题解决
    cookie 的使用
    vue 专门为了解决修改微信标题而生的项目
  • 原文地址:https://www.cnblogs.com/xiongxiaoyan/p/11687124.html
Copyright © 2011-2022 走看看