浅谈自动化测试工具python

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

python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。

以下图片使用Windows画图软件

如图所示,python-uiautomator2主要分为两个部分,python客户端,移动设备

整个过程

pipinstall--pre-Uuiautomator2

首先设备连接到PC,并能够adbdevices发现该设备。

#从github下载atx-agent文件,并推送到手机。在手机上安装包名为`com.github.uiautomator`的apk$python-muiautomator2initsuccess最后提示success,代表atx-agent初始化成功。

python-uiautomator2连接手机的方式有两种,一种是通过WIFI,另外一种是通过USB。两种方法各有优缺点。WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。

虽然很想用AndroidSDK内置工具uiautomatorviewer.bat,但是运行uiautomator2的时候,uiautomatorviewer.bat运行不起来,两者之间冲突太严重。于是参考着uiautomatorviewer的界面,我又写了一个weditor,调用python-uiautomator2的两个接口screenshot和dump_hierarchy这样就不会有冲突问题了

注:weditor依然处于开发期,功能可能会跟文中描述的有所不同

安装方法:pipinstall--preweditor

下图为网页的截图

重点说下这个部分

先忽略iOS和Neco这两个,直接选择Android。输入框中可以写设备的IP或者设备的Serial(序列号),跟上面提到的配置手机设备参数用法一致。之后点击Connect,如果一切正常就会出现一个绿色的叶子。

页面刷新时,点击蓝色的Reload按钮重新刷新。

定位方式

xpath定位并不支持,一开始打算做支持的,但是发现不用也能搞定。就是代码写的长一点而已。

中文字符的输入如果可以定位到元素,直接通过set_text就可以输入中文

d(text="Settings").set_text("你好")如果定位不到元素需要使用send_keys方法,以及切换输入法

d.set_fastinput_ime(True)d.send_keys("你好Hello")d.set_fastinput_ime(False)#输入法用完关掉截图:d.screenshot("home.jpg")获取图层信息:xml=d.dump_hierarchy()

还有太多太多的操作,我就不写了。更多更详细的API接口文档,直接去Github上看文档吧,记得留下你的Star

_^

火钳占楼

威武

不支持xpath的话有的app是不是不好找控件呢?就楼主说的这4个元素,还是不能满足需求的样子

查询条件还有很多,后面我留了一个链接

不支持xpath可以支持texttextContains这么多方法,总有一款适合你

你可以把报错信息打出来,我这还没见过AndroidO的设备

支持移动端webview吗

webview用selenium就好了

还有太多太多的操作,我就不写了。看Github上的文档吧,绝对比我现在写的要好和全这个我不是十分赞同。

github上就没介绍weditor……

没init

不错,之前看着uiautomator2仅支持java,我的头就大了。因为写着Java效率太低。

执行python-mweditor时会报错,求助!!

d.screenshot().convert("RGB").save(buffer,format='JPEG')AttributeError:'NoneType'objecthasnoattribute'screenshot'

HTTPConnectionPool(host='10.155.238.243',port=7912):Readtimedout.(readtimeout=10)链接超时,为啥捏

请问楼主ImportError:Nomodulenamedcv2是怎么回事啊?

小bug,多谢反馈,已经修复.pipinstall--pre-Uweditor重新试试

能够弹出网页了,但是依旧提示Localservernotstarted

多谢反馈,会渐渐完善的

多设备并行执行的时候不如appium稳定。经常出现服务断开的现象、

单个设备很稳定?

话说,我如果想用uiautomator2把本地硬盘里的APK装到手机上,应该怎么做呢?

请问下楼主,atx-agent经常返回502是怎么回事?

uiautomator这个Apk可能经常退出,不行就提个issue

我使用stf机器执行uia2init的时候会报一个错误,这是怎么回事儿呢?

网络错误,github被强了吧

我直接用源码调试就可以顺利执行,命令行就不行。

1、不能使用stf的设备远程连接使用weditor吗?

我的andriod连接成功后,显示手机屏幕的窗口很小,而且没法拖动窗口,请问这个是兼容性问题,还是配置问题?

RuntimeWarning:uiautomator2isdown,restart如何重启?

这个意思是自己正在重启中,不用管

换成chrome就没事了

请问,我安装好了。uiautomator2。再去执行python-muiautomator2init这条语句报以下错误是什么原因:raiseConnectionError(e,request=request)requests.exceptions.ConnectionError:HTTPSConnectionPool(host='github-production-release-asset-2e65be.s3.amazonaws.com',port=443):Maxretriesexceededwithurl:/53296967/aaffc180-23bf-11e8-8860-55319ef04337X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180420T064358Z&X-Amz-Expires=300&X-Amz-Signature=302e0be75f8b2c40cc3da27d748ee8636659a1c532038d5e82925f3ac9e2a655&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dapp-uiautomator.apk&response-content-type=application%2Fvnd.android.package-archive(CausedbyNewConnectionError('0003F1E5F8>:Failedtoestablishanewconnection:[Errno10060]',))

楼主,发现一个bug,win10系统,连接手机成功,但是界面不显示,不过可以进行点击操作,代码也显示

手机型号也说下

三星s8安卓版本8.0

vivo安卓版本4.4也不显示界面

界面430

连接不是是为什么,网络正常、安卓上也装了对应服务,楼主求解答

uiautomator2定位元素,怎么实现啊,d是java语言吧

后端是java的uiautomator2,这个是python做的封装

为啥有的控件找起来非常非常慢,用resourceId定位的,要等好几分钟才有返回,有时又找不到,都是同一个界面

判断子选择器存在不存在是不能用用exists么,如果不存在不会返回false,是报错了

使用USB连接

手机的序列号可以通过adbdevices获取到,假设序列号是123456f,连接代码为

importuiautomator2asu2d=u2.connect_usb('123456f')这段连接代码在什么地方写啊

在代码编辑器里面写:)

我有个疑问,就是我用python开发工具pcharm进行开发导入uiautomator总是无法导入,提示没有模块

请问,现在支持多台设备同时执行脚本吗?哪里有sample可以看?

我也碰到这个问题,很奇怪,不知道你的解决了么?

这个提示我就很迷茫,我不是用了python-mweditor吗

还有一点,我昨天也是,但是不知道怎么就好了..

有没有大佬知道什么原因啊

现在改成本地的了,就是这个网页,没错的

我在进行到就卡住了,提示如下error用的是安卓sdk的虚拟机,版本是4.4

问题不清楚,但是解决方法是有的,你可以使用adb判断当前是否是亮屏状态,然后再发送电源键给手机就好了

使用weditor可以连接,显示界面,点击响应。但是没有元素抓取,只有屏幕坐标,好痛苦,是那里不对呢?

系统信息PC:win1064位,anaconda+py3.5安装的uiautomator2(pipinstall--preuiautomator2)安装的weditor(pipinstall--preweditor)

手机:华为荣耀7,android6.0

升级

拜托大佬能不能说的详细点,升级什么?怎么升级?万分感谢

sudopython-muiautomator2init只后报错EnvironmentError:packagecom.github.uiautomatornotinstalled

请问一下大家这个问题是怎么回事。使用电脑连接安卓模拟器,adb的连接什么的都没问题,可是在执行了python-mweditor之后就一直这样。

之前手机安装还好好的,今天两台荣耀手机使用python-muiautomator2init--mirror全报502的错误了,uiautomator2是0.1.7的版本

请教一个问题,当id和classname都不唯一的时候,这个控件的位置需要如何定位呢?

xpath

请问支持IOS自动化测试吗

click按下没有抬起的事件,导致再click该按钮的时候无法点击

d.touch.up()

但是我发现我下载的uiautomator2运行xpath方法的时候提示不支持,有点不是很懂。并且我还有几个疑问麻烦楼主帮忙看下:1.如果实现原理是手机中封装了uiautomator2的HTTP服务,可以解析PC端发过来的HTTP请求(故需要PC和手机在一个网络下),那么如果是使用qpython的话,是在手机端自行触发的,这样就不需要PC并且也不需要这个网络环境了?

这个问题解决了吗?我的也是和你的一样啊OPPOA57

代码贴出来看看

1、使用python-mweditor启动了,报了个403错误。请问大佬这个是什么情况,ui2已经用的最新版本。并提示init成功。2、我是genymotion模拟器起的6.0版本

500GET/api/v1/devices/98d26007-e512-44de-aefa-fa71669c427a/screenshot,,这是什么原因

楼主帮忙看看这是啥情况,谢谢

并行跑自动化测试是通过什么实现的了

android模拟器是不是不能输入中文,有什么解决办法吗

楼主pipinstall--pre-Uuiautomator2命令安装atx成功了为什么运行Python脚本链接手机一直报这个错误:RuntimeWarning:backendatx-agentisnotalive,startagain...

楼主好,weditor连接android8.1.0手机,点击connect没有反应。操作系统是win10,浏览器是chrome,浏览器报错信息如下:

jQuery没加载,刷新下

谢谢,已经解决

楼主好,启动weditor后,连接设备时提示“Localservernotstarted,startwith$python-mweditor”,控制台输出如下图:

请问这种情况如何解决呢?

操作系统:MacOS10.14.5Python版本:Python3.7.2Android系统版本:7.1.1

请教下大家,同一条用例循环跑几百次时,经常出现这个错误

appium的?

codeskyblue我需要切webview的时候,device_ip已经是atx_agentx显示的ip地址了,端口是init启动的端口,同时我也尝试过指定adbtcpip5555,都是提示Message:unknownerror:Device10.1.25.195:5555isnotonline,请教一下怎么解决?

我启动weditor后没有报错,但是显示是空白的,我查了手机是已经连接上了,这个是怎么回事呢?大神求救

那个weditor启动了,你别退出呀

因为是空白的,所以我才又重启了几次,还是空白的

uiautomator2,有支持IOS的计划吗?

是挂代理了?还是网不好

是的

我也是报错这个,怎么解决的啊

换手机后resourceId发生了变化,怎样才能解决这个问题

connect成功,但是截屏显示空白,点击DumpHierarchy报错:cannotidentifyimagefile<_io.BytesIOobjectat0x0000000004ED00A0>

请问这个是什么原因

为什么connect的时候会出现这种错误

这个问题是怎么回事

还不支持python3.8,换成3.7就好了

想请教如果一个监听在一段脚本里不想要remove()掉了,在其他地方还是想再次启用的,还得把这个创建监听的过程在写一遍么

目前我通过多线程实例化多个client,并且让多个client同时执行操作。我发现在实现过程中,它们并行不能同时执行操作,只能使用多进程去处理的时候,才能多设备执行,但是由于其他原因,不能使用多进程去写,所以想来讨教一下,有没有什么方式让uiautomatot2可以多设备并发执行任务

我电脑启动的模拟器,weditor打开,也连接上了,但是我再weditor中点击app怎么一点反应都没

connect设备,会报错,怎么解决importhumanizeModuleNotFoundError:Nomodulenamed'humanize'

什么版本?

python3.7的

import这个库干嘛?

我跑脚本也经常出现抛RemoteDisconnected的异常,而且是随机性的出现;看了一些技术论坛的帖子,得出的结论貌似是python本身的bug,也一直没找到解决的方法。你最近有解决方案了吗?

请问一下楼主,报这个错误怎么解决呢?[ErrnoPIL.Image.openIOError]cannotidentifyimagefile<_io.BytesIOobjectat0x0000017B03479348>我有过尝试在手机上截图,也是无法截图的

PC和手机在同一个网段,并且PC能ping通手机,为什么connect连不上?![](/uploads/photo/2022/13240520-b388-

m,我也遇到这个问题了

大神,为什么有些控件识别的时候很慢,并且有时候能识别成功,有时候就识别不成功,最近因为这个搞的很头大

大佬,现在支持多点触控吗?比如三指滑动,我只找到两指手势的方法,没找到更多的

请问uiautomator2支援同一台电脑连多台andorid设备吗?目前我使用上时不时会遇到其中一台的设备会断线

THE END
1.6个软件UI界面图绘图软件推荐,为设计师提供最佳创作工具对于 UI 设计师来说,一款好的 UI 界面图绘图软件必不可少。好的创作工具会贯穿整个项目,成倍提升工作效率。好好好,我舅宠你们吧!今天 6 个软件 UI 界面绘图软件推荐大盘点来报道!它们分别是国产绘图软件即时设计,国外创作工具Sketch、Whimsical、AdobeIllustrator、PS、Justinmind,一定要看到最后哦! https://js.design/special/article/software-ui-interface-drawing-software.html
2.UI设计用什么软件做?超详细版UI工具集工欲善其事,必先利其器。有一个好的UI工具可以帮助我们提升设计效率,从而把更多精力放在更重要的事情上。本文盘点了多款超实用、热门的UI设计工具,希望帮助大家挑选更合适的工具,在设计工作中更加得心应手。 1. Pixso Pixso是国内的一款在线协同设计工具,覆盖原型设计、UI/UX设计、设计交付全部核心功能,无需借助第https://pixso.cn/designskills/bestuitools/
3.arch技术文档画图工具箱codecraft序本文主要介绍一下撰写技术文档中可能会用的一些画图工具。这里主要分为两大派,一派是直接拖拽完成,一派是通过代码来完成UI工具主要有processon、draw.iohttps://segmentfault.com/a/1190000041642099
4.html在线画图工具腾讯云开发者社区要想制作一个完美的流程图、思维导图离不开一个好用的画图工具,俗话说的好:“工欲善其事必先利其器”,今天给大家介绍一下平时工作中好用的几款在线画图工具。? 1免费的功能我觉得已经足够平时工作使用了?专业强大的作图工具,支持多人实时在线协作,可用于https://cloud.tencent.com/developer/information/html%E5%9C%A8%E7%BA%BF%E7%94%BB%E5%9B%BE%E5%B7%A5%E5%85%B7-article
5.ios开发画图工具ios画图功能mob64ca13fae001的技术博客ios 开发画图工具 ios画图功能 ios画图总结 0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGContextAddLineToPoint 画直线 4 CGContextAddEllipseInRect 画一椭圆 4 CGContextSetLineCap 设置线条终点形状https://blog.51cto.com/u_16213594/8881276
6.view画图工具资源浏览查阅172次。在Android开发中,`View`画图工具是一个关键的概念,用于在屏幕上绘制各种图形和交互元素。`View`是Android UI系统的基础组件,它负责显示数据并处理用户输入。本篇将深入探讨`View`画图工具的核心概念、功能以及如何在实际应用中使用,更多下载资源、学https://download.csdn.net/download/ruthgjl/2505288
7.15款在线画图软件深度测评:第一款绝对不要错过在当今数字化时代,在线画图软件成为了创作、设计和表达创意的重要工具。无论您是专业设计师还是创意爱好者,这些在线画图软件都将帮助您实现创意的无限可能。本文将为您介绍15款在线画图软件,从功能特点、优缺点和适用场景三个方面深度测评,助您找到最适合您需求的工具。 1. 流程图和图表软件 (1)博思白板boardmix 博https://boardmix.cn/article/15-online-drawing-softwares/
8.新手怎么使用ai画图工具素材网站图片免费下载ai绘图工具startai安装与使用常见问题和解决方法 1 start小星星 ai工作流必备的5种工具(获取,安装,使用) 88 行致传媒 零基础讲解节点式生成的ai绘画工具comfyui,实操使用 sdxl1.0官方工作流 39 aigc芝士计划 aigc丨使用超热门ai工具midjourney提高设计生产力! 47 如风学长 智惠就在11.11用云就用阿里云!领https://www.zcool.com.cn/tag/ZOTM3MjkyNA==.html
9.矢量绘图工具Sketchv68软件官方下载如果自己平时在项目设计中就没有使用过 Symbol 组件和文字图层样式,那么这次更新影响不大。但是作为一名使用 Sketch 的 UI 设计师,CGtimo不能仅仅简单地把 Sketch 当成一个画图工具,而是要充分发挥它的强大功能,来提高我们的设计效率,你觉的呢? 声明:免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研https://www.cgtimo.com/468.html
10.windows画图工具首页教程和下载画图工具windows画图工具的教程2021-03-30 提升Git体验:探索Gitui——高效的终端UI工具2024-01-05 Stirling PDF - 强大的本地 PDF 管理工具2024-01-05 资讯更多 windows画图工具 v5.1.2600.2180 官方版更新2019-05-22 微信Mac插件——微信小助手,是一款功能强大的插件2024-01-08 https://www.wmzhe.com/software/34818.html
11.2023年松江区大中城市联合招聘活动石湖荡镇专场线上招聘会3、熟悉office办公软件、懂得CAD绘图工具者优先考虑; 4、有医疗器械制造业相关工作经验者优先 薪资:8000-12000 岗位五:采购专员 招聘人数:2人 岗位职责: 1、配合采购主管负责公司产品的采购工作,包括询价、比价、签定采购合同; 2、跟进与验收到货,及时处理和客户的往来帐目,跟踪发票和款项; https://www.songjiang.gov.cn/shsj_shihudang/xwzx/001001/20230509/615b30a1-32e9-420b-ab38-aaa886696364.html
12.LUNACYForMacv9.1UI平面设计画图软件中文版人工智能驱动的工具 在Lunancy 中,你会发现一些乘手的工具,可以帮你节省大量的时间: 背景去除器 — 一键去除照片背景 图片放大器 — 放大图像并提高分辨率 头像生成器 — 设计联系人列表、聊天、演示性 Carousel 和类似的东西时即时创建用户头像 文本生成器 — 忘记 lorem ipsum 并一键添加有意义的复制到您的设计https://macoshome.com/?p=30397
13.C++跨平台图形界面开发:如何使用Qt设置鼠标样式控件新闻二、使用画图工具生成鼠标样式的图片 为方便理解,这里将颜色设为黑色RGB(0,0,0)表示为1像素值,将颜色设为白色RGB(255,255,255)表示为0像素值。比如生成的bitmap图片: 生成的bitmap_mask图片: CustomCursor::CustomCursor(QWidget *parent) : QMainWindow(parent) https://www.evget.com/article/2021/6/23/42119.html
14.麦科田医疗2022届校园招聘简章3、 负责UI交互设计的确认工作,收集评估人的反馈意见,并策划更改,使用户操作更趋于人性化。 招聘要求: 1、本科及以上学历,视觉传达、平面设计、美术设计等相关专业; 2、有关于设计和美术知识的储备;精通UI设计工具; 3、具有良好的沟通能力,乐于倾听同事及客户的意见; https://whcb.wh.sdu.edu.cn/info/1085/8067.htm
15.利用FreedgoDesign工具创建UI设计图在线UI设计工具地址: https://www.freedgo.com/draw-index.html?libs=ios;android;bootstrap 什么是UI设计 UI设计指对软件的人机交互、操作逻辑、界面美观的整体设计;UX设计指对软件系统的易用性,价值体现,实用性,高效性的整体设计。 UI User Interface(用户界面)的简称,UI设计(或称界面设计) https://www.pianshen.com/article/42102776715/
16.仿windows画图工具的html5画图工具jQuery之家插件介绍 jspaint是一款高仿windows画图工具的web端html5画图工具。jspaint以windows xp画图工具为原型,制作html5 canvas画图工具,并在此基础上增加新的功能。 浏览器兼容性 时间:01-22 阅读: 查看演示 下载插件 (7) 简要教程 jspaint是一款高仿windows画图工具的web端html5画图工具。jspaint以windows xp画图http://www.htmleaf.com/html5/html5-canvas/201801224943.html
17.首页思维导图工具 跟随自己的思路逐步拓展、沉淀 立即使用 云架构设计器 轻松绘制各种云平台架构 立即使用 平面图设计工具 简单易用绘制平面布置图 立即使用  业务软件设计工具 流程&业务逻辑设计工具 立即使用 UI设计工具 多种平台原型交互页面设计 立即使用 绘图https://freedgo.com/
18.设计师必备的34个工具网站,按工作流程整理好了3、百度脑图——便捷的思维工具 百度脑图是百度系的一款在线思维导图工具,方便分享,体验舒适,功能虽然不多,但基本需求都能满足。 百度脑图免安装,云存储,打开方便,界面清爽,主题样式清晰。 操控性很高,就像CAD画图一样,工具栏简单快捷,无需过多复杂操作。 https://www.digitaling.com/articles/372365.html
19.StarUML3.0.2——超好用的UML画图工具推荐尐鱼儿StarUML3.0.2——超好用的UML画图工具推荐 https://blog.csdn.net/Granery/article/details/86679709https://www.cnblogs.com/yuyu666/p/13508223.html
20.技术文档画图工具箱本文主要介绍一下撰写技术文档中可能会用的一些画图工具。这里主要分为两大派,一派是直接拖拽完成,一派是通过代码来完成 UI工具 主要有processon、draw.io、excalidraw、archimatetool、cloudcraft.co processon 架构图 截屏2022-04-01 上午11.41.50.png https://www.processon.com/view/6220b5de1e085333a8970d39?https://www.jianshu.com/p/156244b2ea53
21.processon在线ai流程图和思维导图制作工具ProcessOn是一款专业在线作图工具和知识分享社区,提供AI生成思维导图流程图。支持思维导图、流程图、组织结构图、网络拓扑图、鱼骨图、UML图等多种图形,同时可实现人与人之间的实时协作和共享,提升团队工作效率。https://www.processon.com/