uiautomator2学习1——weditor工具介绍

为什么选择uiautomator2

关于移动端自动化测试工具呢,现在很有多种,比如:appnium、airtest、uiautomator等等。作者之所以会选择uiautomator2呢,主要是以前工作是测试的app是针对安卓系统,而且app是原生架构。因此没必要使用airtest,airtest更适合做手游的自动化测试。一开始做移动端选型的时候,我是考虑了appnium和weditor(这个是基于uiautomator2的一个工具,待会就会介绍),appnium要安装很麻烦,所以我就选择了weditor。
注意:如果你要测试的app是H5架构或者混合架构的话,作者是不建议使用uiautomator2。因为uiautomator2貌似对H5架构的元素无法定位,当然你也可以使用坐标定位的方式来定位,至于要不要用看各自的具体情况吧。

上面讲到原生架构,这里解释一下,现在的App从表面上看是看不出有什么区别的,但它们的底层技术不一样,按现开发技术,app是可以分成三大类:

  • 原生应用(nativeApp):原生应用开发,是在 Android、iOS 等移动平台上利用官方提供的开发语言、开发类库、开发工具进行 App 开发。所以原生架构的 App 在应用性能上和交互体验上应该是最好的,但是原生应用的可移植性比较差,特别是一款原生的 App,Android 和 iOS 都要各自开发,同样的逻辑、界面要写两套。如微信 app,既有 Android 版的,也有 iOS 版的。
  • Web应用(WebApp):H5 开发就是值是利用 Web 技术(HTML5、JavaScript、CSS)进行的 App 开发,现在还有一些开发框架可以利用,比如 phoneGap、bootstrap、jQuery 等。H5 开发的好处是可以跨平台,编写的代码可以同时在 Android、iOS、Windows 上进行运行。由于 Web 技术本身的限制,H5 移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性。
  • 混合应用(hybridApp):顾名思义就是原生和Web应用开发混合一起。

原生应用就对应app是原生架构,Web应用就对应app是H5架构,混合应用就是混合架构。

Weditor介绍

weditor 是在 atx 生态下的一个小工具,目前由阿里巴巴维护,它支持自从生成 python uiautomator2 的代码,但是如果你不用 uiautomator2,那这个功能没什么用。它也支持直接在界面上操作 app,但是这个工具相对不是很稳定,连接有时会断开(现版本好很多了,不会很经常出现这种情况),而且和 appium 不兼容,要定位先要把 appium 服务断开,appium 运行时也需要把 weditor 断开。

weditor环境需要

  • Python
  • PyCharm

参考:作者的电脑是win 10系统、安装的python是3.8,Pycharm是2022.1.3版本、还配置了android-sdk-windows的环境变量(主要是自己会用到adb.exe和aapt.exe)

作者这里就不介绍关于Python和Pycharm的安装了,自己去百度一下就可以了。

Weditor安装

安装和配置好python后,直接在dos窗口输入:

pip install weditor

不过作者在安装的那时候最新版本0.6.5的安装会出错,我们需要降低下版本

pip install weditor==0.6.4

pip是默认从官网那边下载的,所以会很慢,这里有个从豆瓣那里获取的相关镜像

pip install --upgrade weditor==0.6.4 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安装weditor的同时会自动安装其依赖包,其中包括uiautomator2

安装完成之后,在cmd窗口里输入:

python -m weditor

输入后,就会开始加载,并打开默认浏览器,展示weditor界面
在这里插入图片描述

同样也可以下面的命令先在桌面生成快捷方式:

weditor --shortcut

生成之后双击WEditor图标同样可以启动weditor
在这里插入图片描述

Weditor界面说明

此处就以Android为演示,不用ios做例子,因为ios设备的调试要么用mac要么装黑苹果,挺麻烦的,再加上作者当时的app是只针对安卓的,没有要做ios自动化的需求。

Weditor最上面的部分

先说明最上面的部分:

  • 第一个下拉框的是选择设备平台,点开后会显示Android和IOS;
  • 第二个输入框是填写设备的序列号(如果仅连接了一个设备,可以不填写,点击连接按钮Weditor会自动连接);
  • 第三个“Connect”按钮是连接按钮,设备连接成功后,会有一个小绿叶出现;
  • 第四个“Dump Hierarchy”是加载页面按钮;
  • 第五个是切换静态、实时加载页面;
    在这里插入图片描述

如果要连接实体机的话,首先需要做以下步骤:

  1. 手机开启“开发人员选项”。以作者的荣耀70手机为例,“开发人员选项”在“系统和更新”里面。如没有,需先进入“关于手机”连续点击5次“版本号”后,“开发人员选项”就会出现在“系统和更新”里面了;
  2. 将手机用USB线与电脑连接,并开启“USB调试”。进入“开发人员选项”后,找到并开启“USB调试”。注意:荣耀70是要先将“USB连接方式”改为“传输文件”后才能正常调试。
  3. 在输入框内输入该实体机的序列号进行连接。以作者的荣耀手机为例,序列号在“设备-关于手机-状态信息”里可以查看到。当然也可以通过android-sdk-windows的adb.exe来查询,在dos窗口输入“adb devices”(注意一下dos的当前路径,当前路径要在adb.exe的目录下,如果已经将adb.exe的目录配置到环境变量可忽略。)
adb devices

连接设备是模拟器的话,一般就是IP+端口,IP就是本机,端口需要自己查看相应模拟器的所使用的端口,以夜神模拟器为例,一般默认开启的端口是:62001,再添加模拟器的话端口为:62025,之后再添加模拟器的话就在62025上加1,再添加就再加1,以此类推。端口也可以通过配置文件进行查看,进入夜神安装目录下的 bin\BignoxVMS 目录,这里的每个nox文件夹都是存放对应模拟器的相关信息在这里插入图片描述以进入nox目录为例,对里面的 nox.vbox 文件进行编辑(建议使用notepad++编辑)
在这里插入图片描述
然后在文件内进行查找 guestport=“5555” ,该行的hostport 对应的值就是我们需要的端口
在这里插入图片描述

Weditor左边部分

在这里插入图片描述

Weditor中间部分

在左边页面点击相应的元素,在中间会展示该元素的相关信息
在这里插入图片描述

Weditor右边部分

在这里插入图片描述

Weditor的使用

连接设备

  1. 先选择对应平台;
  2. 输入相关设备(如:安卓模拟器)的IP或设备码,如连接设备仅一个,可尝试跳过;
  3. 点击“Connect”按钮,看是否会出现小绿叶;
  4. 点击“Dump Hierachy”按钮,刷新左边的设备展示界面。
    注意:一旦连接成功后,会自动向设备安装ATX这个app的,如果用真机连接,需要确认安装
    在这里插入图片描述

点击操作

如双击了该元素,则会触发点击,同时会在右边代码界面自动添加点击操作代码
在这里插入图片描述

输入文本

  1. 先双击元素,使其为选中且可输入状态;

  2. 点击“Send Keys”按钮;
    在这里插入图片描述

  3. 出现提示框后,在提示框内输入相应的内容,并点击“确定”;
    在这里插入图片描述

  4. 之后就会在指定元素里输入内容,并在代码界面自动填写输入操作代码;(如果左边界面没有显示已经输入,可以试下刷新查看或者查看设备是否真的输入)
    在这里插入图片描述

编写代码

可以在代码界面自己编写代码,
输入d后,会展示部分方法以供选择使用
在这里插入图片描述
后续会介绍uiautomator2的代码。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值