您现在的位置是:网站首页 > 分类 > 文章详情

uiautomator2

T2019年1月28日 09:3668人围观
app
简介uiautomator2的入门使用方法

首先,在使用uiautomator2之前我们先了解下uiautomator:这个uiautomator只能支持java脚本,且脚本必须上传到设备才能运行。所以,uiautomator2应用而生,它支持python,通过http的形式通过wifi连接执行自动化脚本

首先,安装uiautomator2

pip install --pre uiautomator2

手机上安装atx

1、adb环境搭建
2、开启 adbwifi连接 adb connect 10.111.42.229,如果connect失败的话就需要重启下(重启命令adb tcpip 5555,最好手机连usb去操作这条命令),再去执行connect
3、确认是否已连接 adb devices,会看到一条10.111.42.229:5555的记录
4、手机连接上pc后,在手机上安装atx:python -m uiautomator2 init
5、这个时候你去执行uiautomator2脚本时,可能(部分设备)还没法唤起手机上安装的atx,那么需要cmd下再执行下adb命令:adb shell /data/local/tmp/atx-agent -server
6、尝试去执行uiautomator2脚本:

import uiautomator2 as u2
d = u2.connect_wifi('192.168.3.2')
print(d.info)

执行后输出:
ok,执行成功!

最后来看下,定位元素的方法

1、pc上安装weditor:使用命令pip install --pre --upgrade weditor
2、安装完成后启动python3 -m weditor,执行这个命令后会自动打开一个页面进入http://localhost:17310/
3、页面上下拉选择android,并输入手机上的wifi地址,点击connect即可,最后展示页面如下

总结下:目前还没搞UI自动化,就拿来造造数据也挺不错(你可能会说,使用接口造数据不更方便,其实有时候你走几个UI页面,接口有N多个,而且u2入门相对也容易多了,又好玩,对吧),多部手机wifi连接的情况下,我们启动多个线程(一个手机一个线程)去跑同一段代码,造一些数据(而且基本所有的代码都可以通过上面的weditor进行录制,非常方便),比如:

import threading
import time
import uiautomator2 as u2


def test(func):
    d = u2.connect(func)
    d.healthcheck()
    d.session("com.taobao.trip")  # restart app
    if d.exists(text="跳过"):
        time.sleep(5)  # 等待首页广告结束
    d(resourceId="com.taobao.trip:id/icon_anchor", className="android.view.View", instance=4).click()
    d(resourceId="com.taobao.trip:id/aliuser_login_mobile_et").send_keys("13333333333")
    d(resourceId="com.taobao.trip:id/aliuser_register_sms_code_et").set_text("33333")
    d(resourceId="com.taobao.trip:id/aliuser_login_login_btn").click()


if __name__ == '__main__':
    t1 = threading.Thread(target=test, args=('10.111.40.90',))
    t2 = threading.Thread(target=test, args=('10.111.42.229',))
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print("data complete!")

环境搭建https://www.cnblogs.com/lynn-li/p/5885001.html
u2说明书https://github.com/openatx/uiautomator2#connect-to-a-device

上一篇:测试平台

文章评论

阿里云-云大使推广
阿里云-云服务器推广

微信公众号