一说到app自动化测试,第一反应就会想到appium这个框架,和web端的selenium一样,但是对于appium来说,搭建环境非常重要,很多人都被环境搞得望而却步了,放弃了appium。
下面说的uiautomator2这个框架,环境比appium简单多了,可以值得一学的

1.uiautomator2简介和原理分析

uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试。它本来是Google提供的一个自动化测试的Java库,后来发展了python-uiautomator2,封装了谷歌自带的uiautomator测试框架,提供便利的python接口,用它可以很便捷的编写python脚本来实现app的自动化测试
原理解析:
python端:运行脚本,往移动端发送HTTP请求
移动端:安装atx-agent,然后atx-agent启动uiautomator2服务进行监听,并识别python脚本,转换为uiautomator2的代码。
移动设备通过WIFI(同一网段)或USB接收到PC上发来的HTTP请求,执行制定的操作

2.安装

1.首先跟appium一样,要先安装adb
下载androidsdk,并配置环境变量

2.安装uiautomator2
这个不好安装,这里推荐用清华源或者豆瓣源来安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --pre -U
uiautomator2

3.设备初始化:首先设备连接到PC,并能够adb devices发现该设备
我这里用的是夜神模拟器

4.在设备上安装atx-agent
执行 python -m uiautomator2 init
夜神模拟器就自动安装了,手机真机可能需要点击同意安装

3.验证设备是否连接成功

首先看设备是否连接上了
导包并重命名 import uiautomator2 as ut
连接设备是ut.connect(‘127.0.0.1:62001’)

import uiautomator2 as ut
d=ut.connect('127.0.0.1:62001')
print(d.device_info)

打印出来这个设备的所有信息

这就说明连接是成功的
接下来需要定位元素,这里介绍一款好用的定位工具:weditor ,不仅可以实时定位,而且还可以在里面编写调试代码

4.安装weditor

执行 pip install --pre weditor
可能会超时,这里推荐豆瓣源安装,亲测可用

pip install -i https://pypi.douban.com/simple weditor

安装成功

执行

python -m weditor

会在浏览器打开一个网页

打开之后是这样的

在模拟器上运行app,点击Dump Hierarchy,就可以在浏览器显示出手机的屏幕了,打开实时,能实时看到

5.打开app并编写代码

uiautomator2查看当前运行的app的命令是uiautomator2 current
比如我在模拟器里打开今日头条,在cmd里执行uiautomator2 current
就会看到包名和当前类名

uiautomator2 打开app也比appium简单,直接用app_start方法就行了,现在来在pycharm里写代码

d=ut.connect('127.0.0.1:62001')
print(d.device_info)
d.app_start('com.ss.android.article.lite','com.ss.android.article.lite.activity.SplashActivity') #打开app

我现在要点击到登录页面,在weditor里查到元素定位,然后用d()就可以了,比appium里的find_element_by_xpath这种简单
下面是我写的代码

import uiautomator2 as ut
import time
d=ut.connect('127.0.0.1:62001')print(d.device_info)
d.app_start('com.ss.android.article.lite','com.ss.android.article.lite.activity.SplashActivity') #打开app
d.implicitly_wait(10)
d(text='热榜').click()
d(text='未登录').click()
d(text="登录").click()
d(text="手机号").send_keys('13409012321')
d(text='请输入验证码').send_keys('123456')
d(text='进入头条').click()

uiautomator2里还有更多好玩好用的方法,慢慢学习,会爱上这个框架的

uiautomator2,一款比appium还好用的app自动化测试框架相关推荐

  1. APP自动化测试框架搭建(五)--Python+Appium+pytest-html

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  2. APP自动化测试框架搭建(六)--uiautomator2、web-editor基础操作

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  3. APP自动化测试框架-UiAutomator2基础入门

    前言 很早以前,我用uiautomator+java实践过Android APP自动化测试,不过今天要提的不是uiautomator,而是uiautomator2.听起来uiautomator2像是u ...

  4. android app自动化测试框架Appium资料整理

    by Ruiming.Lv 1   自动化测试 1.1    自动化测试简介 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的 ...

  5. Appium App自动化测试框架【一】

    本文为博主原创,未经许可严禁转载. 本文链接:https://blog.csdn.net/zyooooxie/article/details/113841107 2018年我开始在csdn写博客,最初 ...

  6. Python Appium移动端app自动化测试框架

    最近有时间把前面写的Python UI自动化脚本转换成了适用于App的测试,整体架构没多少变化,先看整体架构 先从入口说起: (1)config.ini:运行前进行基本的配置,配置文件,由于是借鉴的U ...

  7. uiautomator2 App自动化测试框架【一】

    本文为博主原创,未经授权,严禁转载及使用. 本文链接:https://blog.csdn.net/zyooooxie/article/details/123916767 怎么也想不到,我又开始写app ...

  8. 2022软件测试技能 APP自动化测试 Python+Appium+Uiautomator2 实战教程

    系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录 前言 一.Appium 原理 二.环境搭建,一键搞定 1. 安装Java JDK 2. Android SDK 安装与配置 3. ...

  9. APP自动化测试(一)-appium

    一:APP自动化测试框架比较 跨应用:比如在测试抖音的同时还想测试微信 Hybrid:混合应用程序 二:Appium自动化测试框架 官网:http://appium.io/ 优点: 1:跨架构.支持原 ...

最新文章

  1. 四肢切割_四肢瘫痪者用大脑信号和先进的假肢完成吃饭动作
  2. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
  3. spring boot / cloud (十七) 快速搭建注册中心和配置中心
  4. 【Linux小技巧】开启关闭蜂鸣声
  5. 【软件工程】软件项目的利益相关者与系统相关人员
  6. 怎样在word中同时输入上下标
  7. 【codevs1993】草地排水,网络流入门(dinic+ispa)
  8. 【英语学习】【Level 07】U06 First Time L1 My very first trip
  9. 滇西应用技术大学有没有计算机专业,学校介绍
  10. mysql获取当前时间示范,mysql 实时显示当前运行的sql语句
  11. WPF-使用代码创建Grid行与列,并将控件添加到Grid中的指定行指定列
  12. html如何上下滚动字幕,html页面实现滚动字幕
  13. IDEA打包失败解决方案
  14. Reeder的本地使用
  15. 免费的文档翻译教程;免费将很长的文档英文翻译成中文
  16. Robust Transmit Beamforming for Secure ISAC
  17. 计算机蓝牙功能,笔记本电脑蓝牙在哪里?笔记本怎么打开蓝牙功能Bluetooth
  18. MATLAB函数合辑
  19. 数据结构与算法-最小生成树之克鲁斯卡尔(Kruskal)算法
  20. Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记

热门文章

  1. java中的算法(一致性hash算法和数据结构的问题)
  2. C与C++中++i和i++的区别
  3. 6-27 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100 分)
  4. AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data
  5. pcap_findalldevs_ex 文件没有定义
  6. .Net Core 文件的上传下载
  7. 【TS】1010- 细数 10 个 TypeScript 奇怪的符号
  8. 与某流氓网站的血泪交战史
  9. 美团点评暑期实习个人总结
  10. P7826 「RdOI R3」RBT