• monkey基础 (7)


    MonkeyRunner工具主要有三个类:

    1. MonkeyRunner

    2. MonkeyDevice

    3. MonkeyImage

    官方API文档 :http://www.android-doc.com/tools/help/monkeyrunner_concepts.html#

    MonkeyRunner类

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

    常用方法

    waitForConnection(float timeout,string deviceid)

    from com.android.monkeyrunner import MonkeyRunner as mr
    print("connect devices...")
    
     
    
    device=mr.waitForConnection()
    # device=mr.waitForConnection(5,'127.0.0.1:62001')  有多个也可以指定多个
    

    MonkeyDevice类

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

    常用方法

    • installPackage (string path)
    • removePackage (string package)
    • startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
    • touch (integer x, integer y, integer type)
    • drag (tuple start, tuple end, float duration, integer steps)

    touch参数说明

    integer x,x坐标值。
    integer y,y坐标值。
    integer type,key event类型(如DOWN、UP、DOWN_AND_UP)。

    DOWN为按下事件 UP为弹起事件 DOWN_AND_UP为按下弹起事件。

    drag参数详细说明

    tuple start,拖拽起始位置,为tuple类型的(x,y)坐标点。
    tuple end,拖拽终点位置,为tuple类型的(x,y)坐标点。
    float duration,拖拽手势持续时间,默认为1.0s。
    -integer steps,插值点的步数,默认值为10。

    实践案例

    连接设备,安装考研帮App并启动

    代码实现

    kyb_start.py
    
    from com.android.monkeyrunner import MonkeyRunner as mr
    from com.android.monkeyrunner import MonkeyDevice as md
    
     
    
    print("connect devices...")
    device=mr.waitForConnection()
    
    print("install app...")
    device.installPackage(r'C:UsersShuqingDesktopkaoyan3.1.0.apk')
     
    package = 'com.tal.kaoyan'
    activity = 'com.tal.kaoyan.ui.activity.SplashActivity'
    runComponent = package + '/' + activity
    
    print("launch App...")
    device.startActivity(component=runComponent)
    

    MonkeyImage类

    MonkeyImage类在测试过程中用来保存各种格式的测试截图,并可以进行图像对比。

    常用方法

    • takeSnapshot() 进行屏幕截图
    • writeToFile() 保存图像文件到指定的文件路径

    用法示例

    from com.android.monkeyrunner import MonkeyImage as mi  
    
    print("takeSnapshot")
    screenshot=device.takeSnapshot()  
    screenshot.writeToFile(r'E:monkeyrunner_script	est.png','png')  
    

    综合实践

    测试场景

    • 连接设备,自动安装并启动考研帮app
    • 启动后登录账号(账号zxw1234 密码:zxw123456),然后截图并保存到指定文件位置。

    思路分析

    • 连接设备
    • 安装app
    • 启动app
    • 输入用户名密码点击登录按钮
    • 截图

    脚本实现

    kyb_login.py
    
    from com.android.monkeyrunner import MonkeyRunner as mr
    
    from com.android.monkeyrunner import MonkeyDevice as md
    
    from com.android.monkeyrunner import MonkeyImage as mi
    
    
    print("connect devices...")
    
    device=mr.waitForConnection()
    
    print(" install app")
    device.installPackage(r'C:UsersShuqingDesktopkaoyan3.1.0.apk')
    
     
    
    print("launch app...")
    package='com.tal.kaoyan'
    activity='com.tal.kaoyan.ui.activity.SplashActivity'
    runComponent=package+'/'+activity
    
    device.startActivity(component=runComponent)
    mr.sleep(3)
    
     
    
    print("touch cancel button")
    device.touch(618,895,'DOWN_AND_UP')
    mr.sleep(1)
    
    print("touch skip button")
    device.touch(804,67,'DOWN_AND_UP')
    mr.sleep(1)
     
    
    print("input username and password")
    device.touch(57,373,'DOWN_AND_UP')
    mr.sleep(2)
    
    
    device.type('zxw1234')
    device.touch(152,480,'DOWN_AND_UP')
    mr.sleep(2)
    
    device.type('zxw123456')
    mr.sleep(2)
    
    print("touch login button")
    device.touch(331,634,'DOWN_AND_UP')
    
    print("takeSnapshot")
    screenshot=device.takeSnapshot()
    screenshot.writeToFile(r'D:monkeyrunnerkyb.png','png')
    
    
    
  • 相关阅读:
    Entity Framework Core 2.0 新特性
    asp.net core部署时自定义监听端口,提高部署的灵活性
    asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
    使用xshell连接服务器,数字键盘无法使用解决办法
    使用Jexus 5.8.2在Centos下部署运行Asp.net core
    【DevOps】DevOps成功的八大炫酷工具
    【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
    【Network】UDP 大包怎么发? MTU怎么设置?
    【Network】高性能 UDP 应该怎么做?
    【Network】golang 容器项目 flannel/UDP相关资料
  • 原文地址:https://www.cnblogs.com/dongye95/p/15311335.html
Copyright © 2020-2023  润新知