zoukankan      html  css  js  c++  java
  • uiautomator2 +Python进行Android原生应用UI测试

    uiautomator2封装了google的uiautomator(只能用java),uiautomator2可以使用脚本语言python进行编写,更简单直观地修改、运行自动化测试代码;

    不足为:仅支持Android平台的原生应用测试。

    使用方法:

    1、安装 python库uiautomator2(支持python3和python2)

      pip3 install --pre uiautomator2

    2、确保电脑连接移动设备, 并且adb环境已经可用

    3、需要在移动设备上安装atx-agent(守护进程,使用本库所需), atx-agent启动uiautomator2服务

      python3 -m uiautomator2 init

      执行该命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch)

    4、通过python脚本连接设备

    import uiautomator2 as u2
    d = u2.connect_usb('a6bce413') #adb devices查询到的设备号
    #方式2:通过手机wifi连接(PC和移动设备使用的一个wifi)
    d = u2.connect_usb('192.134.11.13') #手机的ip地址为:192.134.11.13
    print(d.info)

    5、抓取app控件:
      A、工具1:uiautomatorviewer
      B、工具2:openatx提供了另外一个工具weditor 来解决这个问题简单用法来自网上:

        B1、安装:

        pip install --pre --upgrade weditor

        B2、使用:

        python3 -m weditor

        默认会通过浏览器打开页面:http://atx.open.netease.com/

        在页面左上角选择Android,输入设备IP(192.168.31.234)或者设备号(),点击Connect按钮。操作完手机后,可以点击“Reload”按钮从而保持与设备上的界面保持同步。

    import uiautomator2 as u2
    d = u2.connect_usb('a6bce413')
    print(d.info)
    # 启动App
    d.app_start("com.ulabs.ubbeybox")

    # 远程登陆
    d(description="Remote login").click()

    #停止应用
    d.app_stop("com.ulabs.ubbeybox")

    常用的定位方式:

    • ResourceId定位:
      d(resourceId="com.meizu.mzbbs:id/tp").click()

    • Text定位:
      d(text="精选").click()

    • Description定位:
      d(description="..").click()

    • ClassName定位:
      d(className="android.widget.TextView").click()

  • 相关阅读:
    第三方控件netadvantage UltraWebGrid如何生成带加号多级表数据也就是带子表
    第三方控件netadvantage UltraWebGrid如何生成多级跨行表头个人总结
    win8安装tfs2010提示未启用iis6.0未启用兼容模式需要静态内容组件
    wp7学习笔记
    Jqury笔记
    zookeeper 食谱
    dubbo 框架和 tomcat 的比较
    zookeeper 的心跳
    dubbo 自定义 Filter
    ActiveMQ producer 提交事务时突然宕机,会发生什么
  • 原文地址:https://www.cnblogs.com/yoyo008/p/9296276.html
Copyright © 2011-2022 走看看