欢迎来到赛兔子家园

python中uiautomator2环境安装

uiautomator2简介

什么是uiautomator2?

python-uiautomator2 是一个自动化测试开源工具,仅支持 Android 平台的原生应用测试。

原理:在手机上运行了一个http rpc服务,将uiautomator中的功能集成进来,然后再将这些http接口封装成Python库。

uiautomator2的优点

  • 环境搭建便捷
  • UI控件识别有专业工具weditor,可视化好
  • UI自动化编写采用Python
  • UI自动化脚本运行稳定
  • 帮助文件是中文

官网https://github.com/openatx/uiautomator2

Uiautomator2支持环境

1、Android版本 4.4+

2、Python3.6+

uiautomator2安装

python环境:python3.7.1

pip install uiautomator2

安装完成后查看uiautomator2,所有依赖的包如下图:

uiautomator2对连接的移动设备进行初始化

uiautomator2模块安装完成后,就需要对连接的移动设备进行初始化。

初始化命令:python -m uiautomator2 init   执行后会自动下载下面依赖包到移动设备中

  • 下载uiautomator-server谷歌原生的uiautomator
  • atx-agent:uiautomator的守护进程
  • atx-agent增加远程控制的功能,依赖minicap和minitouch这两个工具

已安卓模拟器为例来说明初始化的过程

前提条件:

安卓模拟器,设置--->开发者选择中-->开启USB调试

移动设备是安卓手机,通过usb线连接且必须开启USB调试;

执行:python -m uiautomator2 init  进行初始化操作

如下图对移动设备初始化完成,会在移动设备中安装ATX包 

原理:移动设备上安装atx-agent(守护进程),随后atx-agent启动uiautomator2服务(默认7912端口)进行监听;

           在PC端使用Python编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端);

           移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行指定的操作;

查看端口命令:

adb shell   -->查到进程号  输入命令:  busybox netstat -pt | grep 进程号   查看端口

测试代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author: 青城子
# datetime: 2021/4/11 22:48 
# ide: PyCharm

import uiautomator2 as u2
import time

d = u2.connect("127.0.0.1:62025")
# 打开debug模式,查看通讯流程
d.debug = True
# 查看简单的设备信息
print(d.info)

输出:

C:\Python\python.exe C:/work/imooc/u2_project/test2.py
11:34:01.871 $ curl -X POST -d '{"jsonrpc": "2.0", "id": "32cc7a24de4501c621d05b4c4f28e382", "method": "deviceInfo", "params": {}}' 'http://127.0.0.1:39356/jsonrpc/0'
11:34:02.112 Response (241 ms) >>>
{"jsonrpc":"2.0","id":"32cc7a24de4501c621d05b4c4f28e382","result":{"currentPackageName":"com.android.settings","displayHeight":1280,"displayRotation":0,
"displaySizeDpX":480,"displaySizeDpY":853,"displayWidth":720,"productName":"VOG-AL10","screenOn":true,"sdkInt":22,"naturalOrientation":true}} <<< END {'currentPackageName': 'com.android.settings', 'displayHeight': 1280, 'displayRotation': 0, 'displaySizeDpX': 480, 'displaySizeDpY': 853, 'displayWidth': 720, 'productName':
'VOG-AL10', 'screenOn': True, 'sdkInt': 22, 'naturalOrientation': True}

 

posted on 2021-05-07 12:09  赛兔子  阅读(2667)  评论(0编辑  收藏  举报

导航