【自动化测试】推荐一款超好用的ui自动化工具--uiautomator2
今天直接进入正文,给大家推荐一款超级好用的ui自动化工具 uiautomator2
正文来了
我将从以下几个方面,向大家介绍 uiautormator2,希望该项目的作者看到我的文章之后,可以请我喝杯奶茶。
1、简要介绍
2、实现原理
3、安装步骤
4、使用简介
5、优点缺点
简要介绍
项目地址:http://github.com/openatx/uiautomator2
start:2k
一看名字,大家可能会觉得uiautormator2是Uiautomator的升级版本,其实并不是。
大家都知道,UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,功能强大,但支持Java语言,并不支持python。
然而,当今测试行业,最流行的编程语言,还是python。ui自动化,怎么能不支持python呢?
所以 uiautormator2 应运而生。
uiautomator2 是一个开源的自动化测试工具,提供了一系列的python API,方便测试
人员用python编写自动化测试脚本。
其他与 uiautomator2 相关的工具
weditor:
简介:抓取ui控件的工具,并可进行简单调试
项目地址:http://github.com/openatx/weditor
atxserver2:
简介:机型管理平台,可以实现多台手机群控
项目地址:http://github.com/openatx/atxserver2
ATX-Test:
简介:UI自动化框架,PO模型,方便管理ui自动化项目代码
项目地址:http://github.com/pengchenglin/ATX-Test
实现原理
原理是在手机上运行了一个http rpc服务,将Uiautomator中的功能开放出来,然后再将这些http接口封装成Python库。
原理图:
如图所示,uiautomator2主要分为两个部分,python客户端,移动设备
python端: 运行脚本,并向移动设备发送HTTP请求
移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。
整个过程
在移动设备上安装
atx-agent
(守护进程), 随后atx-agent
启动uiautomator2服务(默认7912端口)进行监听在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作
安装步骤
安装前置步骤
python(推荐使用python3)
adb环境
Android手机(iOS好像也支持了,具体可以看作者的 github 项目)
安装步骤:
(1)pip 安装 uiautomator2
pip install uiautomator2
(2)pip 安装 weditor
pip install weditor
(3)手机连电脑,并安装atx-agent
python -m uiautomator2 init
只需这三个步骤,即可完成安装。
使用简介
使用起来也特别方便。
(1)首先,启动 weditor,连接手机,并抓取元素控件
python -m weditor
命令输入之后,会弹出一个浏览器web窗口,输入手机 DeviceId 即可连接weditor。
点击左侧的手机截屏,即可选择控件,并会生成控件元素代码。
(2)编写 python 自动化测试 脚本
连接设备
通过手机 IP 地址连接
import uiautomator2 as u2
d = u2.connect('10.0.0.1')
print(d.info)
也可以通过手机 DeviceId 连接
import uiautomator2 as u2
d = u2.connect('123456f')
print(d.info)
安装待测apk
d.app_install('http://some-domain.com/some.apk')
选择待测的app
d.app_start("com.example.hello_world")
使用封装好的API,触发事件,操控手机
# Selector 元素选择器
d(text="Settings")
# 点击文案是“Settings”的元素
d(text="Settings").click()
# 点击屏幕的(x,y)点坐标
d.click(x, y)
# 选择元素并滑动
d(text="Settings").swipe("right")
d(text="Settings").swipe("left", steps=10)
d(text="Settings").swipe("up", steps=20) # 1 steps is about 5ms, so 20 steps is about 0.1s
d(text="Settings").swipe("down", steps=20)
# 滑动屏幕
d.swipe(sx, sy, ex, ey)
d.swipe(sx, sy, ex, ey, 0.5) # swipe for 0.5s(default)
# 等待“Settings”元素出现之后再点击,设置超时时间是3秒
d(text="Settings").wait(timeout=3.0).click()
元素选择器(Selector)支持以下方式获取控件
text、resourceId、ClassName、Xpath等
也支持多种方式联合定位元素,提高准确性
d(text="Settings", resourceId="com.xxx.yyy")
支持的操作事件
click、Double click、Long click、Swipe、Drag、scroll 等等,
更多详情可以查看 github 的说明文档
uiautomator2还有一个比较好的功能是监听控件。原理是轮询查找控件,并且会有超时时间,当捕获到相关控件时,就可以采取自定义的处理。
# 常用写法,注册匿名监控
d.watcher.when("安装").click()
# 注册名为ANR的监控,当出现ANR和Force Close时,点击Force Close
d.watcher("ANR").when(xpath="ANR").when("Force Close").click()
# 其他回调例子
d.watcher.when("抢红包").press("back")
d.watcher.when("//*[@text = 'Out of memory']").call(lambda d: d.shell('am force-stop com.im.qq'))
监听控件常常用于,跳过APP的弹窗广告。
uiautomator2还可以让手机弹出toast
d.toast.show("Hello world")
d.toast.show("Hello world", 1.0) # show for 1.0s, default 1.0s
使用方法就简单介绍到这,感兴趣的同学可以到作者的github项目上去了解更多内容。
优点缺点
没有对比就没有伤害。现在大家都潜意识把Appium当成是Ui自动化的行业标杆,那我们就来一起对比一下,uiautomator2和Appium。
不知道大家怎么看,对于一个pythoner来说,uiautomator2显然更好用一些。
但是,uiautomator2也是有一些缺陷的。
无线连接手机的时候,稳定性不太好,经常会掉线。
监听控件,d.watchers.watched 置换监听状态会无效,不过查看文档,作者是已经把这块功能移除了。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)
可以自助拿走,群号:310357728群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦
如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见
【自动化测试】推荐一款超好用的ui自动化工具--uiautomator2相关推荐
- 推荐一款超好用的ui自动化工具--uiautomator2
给大家推荐一款超级好用的ui自动化工具 uiautomator2 先上目录 简要介绍 实现原理 安装步骤 使用简介 优点缺点 简要介绍 项目地址:https://github.com/openatx/ ...
- SaaSBase:推荐七款超好用的大数据分析工具
如今,大小企业都可以利用商业智能工具来理解复杂的大数据.通过收集和分析这些数据,并将其转化成易于理解的报告,这些解决方案可以为企业提供有价值的洞察力,从而提高企业利润.SaaSBase(saasbas ...
- docker里面什么emule比较好_推荐 5 款超好用的开源 Docker 工具
Docker 社区已经创建了许多开源工具,它们能帮我们处理各种用例.作者在本文中推荐了 5 款认为最有用的 Docker 工具,分别是 Watchtower(自动更新 Docker 容器).docke ...
- 推荐一款超好用的剪贴板增强工具—Clipx
Clipx是一款免费的绿色软件,直接双击exe文件即可运行,非常的小巧方便. 它运行后的程序图标会显示在系统托盘中,这时ClipX就会接管系统中的复制粘贴操作,当用户需要选择粘贴内容时,只需用鼠标左键 ...
- 推荐十款推荐十款超赞的Googleamp;nbs…
摘要:一款好的浏览器,除了可以浏览网页之外,还应该是个"全能选手".谷歌的Chrome的魅力就在于可以安装各种扩展插件,让其自身的功能更加丰富.所谓"好马还需配好鞍&qu ...
- Python培训教程分享:10款超好用的Python开发工具
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python ...
- 8款超赞的最新jQuery插件工具
jQuery是迄今为止我最喜欢的Javascript框架,开发者用jQuery创造出惊人的视觉效果,以及处理数据,等等. 在这篇文章中,我给所有web开发人员推荐8款超赞的jQuery插件工具. 1. ...
- Python教程分享,10款超好用的Python开发工具!
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的python ...
- 网页兼容性测试软件,12款超棒的浏览器兼容性测试工具让你轻松搞定Bug
原标题:12款超棒的浏览器兼容性测试工具让你轻松搞定Bug Spoon Browser Sandbox 点击你需要测试的浏览器环境,安装插件就可以进行测试了.帮助你测试网页在Safari.Chrome ...
最新文章
- Java公开课-02.抽象类和接口
- [15]APUE:pipe / FIFO
- 读秦小波《设计模式之禅》 -- 工厂模式
- Linux 进程基础
- 如何把图片转为html,如何将原始十六进制图像转换为html图像
- linux7.3ssh登陆不上,centos7.3升级openssh到7.7p1后root用户无法登陆的问题
- c语言绑定,C++实现动态绑定代码分享
- 大数据_Spark_核心模块介绍---Spark工作笔记0003
- java运算符的优先级别
- 可编译运行:调用ffmpeg接口,将RTSP流保存为MP4的C代码
- jdk1.8 64位 32位免费下载
- 电力线通信技术的发展
- python 全角字符和半角字符切换
- 计算机科学与技术名言,关于科学的名言(20个最值得一读的科技名言)
- Linux中nvme驱动详解
- 方舟手游非官方服务器修改器,方舟非官方服务器作弊码 | 手游网游页游攻略大全...
- Exploring the Emerging Type of Comment for Online Videos: DanMu
- 2021年电工(初级)考试及电工(初级)报名考试
- GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237
- Win10系统中很多磁盘碎片怎么进行整理?
热门文章
给大家推荐一款超级好用的ui自动化工具 uiautomator2 先上目录 简要介绍 实现原理 安装步骤 使用简介 优点缺点 简要介绍 项目地址:https://github.com/openatx/ ...
如今,大小企业都可以利用商业智能工具来理解复杂的大数据.通过收集和分析这些数据,并将其转化成易于理解的报告,这些解决方案可以为企业提供有价值的洞察力,从而提高企业利润.SaaSBase(saasbas ...
Docker 社区已经创建了许多开源工具,它们能帮我们处理各种用例.作者在本文中推荐了 5 款认为最有用的 Docker 工具,分别是 Watchtower(自动更新 Docker 容器).docke ...
Clipx是一款免费的绿色软件,直接双击exe文件即可运行,非常的小巧方便. 它运行后的程序图标会显示在系统托盘中,这时ClipX就会接管系统中的复制粘贴操作,当用户需要选择粘贴内容时,只需用鼠标左键 ...
摘要:一款好的浏览器,除了可以浏览网页之外,还应该是个"全能选手".谷歌的Chrome的魅力就在于可以安装各种扩展插件,让其自身的功能更加丰富.所谓"好马还需配好鞍&qu ...
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python ...
jQuery是迄今为止我最喜欢的Javascript框架,开发者用jQuery创造出惊人的视觉效果,以及处理数据,等等. 在这篇文章中,我给所有web开发人员推荐8款超赞的jQuery插件工具. 1. ...
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的python ...
原标题:12款超棒的浏览器兼容性测试工具让你轻松搞定Bug Spoon Browser Sandbox 点击你需要测试的浏览器环境,安装插件就可以进行测试了.帮助你测试网页在Safari.Chrome ...