基于图像识别原理的UI自动化工具——Airtest入门

4,199 阅读5分钟

优秀创作者-冯港华.png

一.背景

1.当前UI自动化面临的问题

  1. 难以使用一套工具对移动端、web端、桌面端进行自动化测试

2. 版本更新页面改动较大,自动化脚本的维护成本高

3. 图片内容难以验证

2.解决方案

用图像识别方法代替传统坐标定位方法进行UI自动化设计

二.Airtest自动化简介

Airtest是一个跨平台的UI自动化测试框架,基于图像识别原理。Airtest IDE操作页面如图

T_T,出错了1.优点

基于python,跨平台,可用于移动端、web端、桌面端UI自动化测试,支持windows、ios、android

2.组成

整个工具套件由Airtest IDE、Airtest、Poco、Airlab组成

  • Airtest IDE:跨平台的UI自动化编辑器
  • Airtest:基于python的跨平台的UI自动化测试框架,基于图像识别原理
  • Poco:基于UI空间搜索的自动化框架
  • Airlab:网易Airtest云测试服务

三.环境搭建

1.AirtestIDE下载和安装

1.1Windows用户
  • 根据系统是32位还是64位版本,下载官网上对应的zip包,解压后得到AirtestIDE文件夹
  • 双击AirtestIDE/AirtestIDE.exe即可启动进行安装,一直点击下一步即可
  • 在部分机器上可能由于显卡兼容性问题,导致无法正确启动,或脚本编辑窗口无法编辑,可以在1.2.3版本IDE新增的兼容模式的设置项中选择一个兼容模式后重启IDE,这样未来将会默认以兼容性模式来启动IDE
  • 双击图标运行

image

1.2MacOS用户
  • 官网下载AirtestIDE.dmg后双击解压,将AirtestIDE.app拖入应用程序Application文件夹中即可
  • 第一次启动时可能会有闪退问题,再次启动即可正常使用

2.界面介绍

T_T,出错了

  • 导航栏:主要是脚本文件的管理,和IDE的设置
  • Airtest辅助窗:可以快速插入部分操作代码
  • Poco辅助窗:可看到原生UI结构等信息
  • Selenium窗口:使用与Airtest辅助窗一样,可以快速插入部分操作代码
  • 脚本编辑窗口:进行代码编辑的地方
  • Log查看窗:可以查看运行脚本时的各项Log信息;可以查看定位元素或控件的信息
  • 设备窗:可以查看设备信息,控制设备等,可分成移动设备连接、远程设备连接、Windows窗口连接、ios设备连接四部分

3.连接设备

3.1 Android连接

1.打开开发者选项,打开usb调试

2.通过数据线或者wifi连接(关闭手机助手)

3.在手机端同意usb调试

IOS连接参考官方文档airtest.doc.io.netease.com/IDEdocs/dev…

3.2 连接模拟器

1.获取模拟器的ip和端口号

2.将ip和端口按照adb connect ip:port的格式填入远程设备连击

3.点击连接

4.等待几秒,模拟器设备显示在设备列表中,点击connect

3.3 Windows窗口连接

在设备窗—windows窗口连接中,点击选择游戏画面或者搜索窗口,选择窗口完成连接

四.编写和执行用例

本文档以安卓手机为例,使用Airtest指令完成demo用例的编写

1.编写脚本

操作指令:

T_T,出错了

  • touch:触摸
  • swipe:滑动
  • wait:等待
  • exist:是否存在
  • snapshot:截屏
  • text:输入文本
  • keyevent:按键
  • sleep:休眠
  • assert_exist:断言存在
  • assert_not_exist:断言不存在
  • assert_equal:断言相等
  • assert_not_equal:断言不相等
1.1新建脚本

操作栏中点击文件——新建脚本——.air Airtest项目

1.2录制脚本
1.2.1自动化录制脚本

点击Airtest辅助窗的自动化录制按键开始录制

T_T,出错了

在右侧连接侯的设备窗设备截图区域操作,相应动作会被自动录制为代码,并且会自动截取操作区域的图片

操作之间需要手动添加wait或者sleep,否则很可能因为操作和显示不同步而失败

自动截取的图片通常不是很准确,建议手动截取图片

1.2.2手动录制脚本

点击Airtest中的操作指令,再到连接设备窗口中截图,完成一条操作步骤

2.执行脚本

点击菜单栏运行按键或者按F5开始执行脚本

T_T,出错了

也可以通过命令行的方式运行:airtest run "path to your .air dir" --device Android : / / /

五.查看报告

在AirtestIDE中,可以点击上侧图标菜单的最后那个“查看报告”的按钮,快捷键为Ctrl+L,稍后片刻将会自动使用默认浏览器打开结果报告页面

T_T,出错了

1报告内容
T_T,出错了

报告主要分为两部分:

①在报告的上半部分,可以看到与报告相关的一些信息,比如:报告的名称、作者、报告描述(可自定义)以及快览等等。点击任意一张快览,下方会展示相应的测试信息。

②报告的下半部分,详细展示了每一个测试动作及其执行情况。单击左侧的测试动作,右侧会显示出相应动作执行结果的详细情况。并且我们还可以在右侧对不同执行结果进行筛选。

2自定义报告描述

如果在脚本中写到了以下内容,将会在报告中显示出来:

author 对应脚本作者

title 对应脚本标题

__desc__可以写较长的脚本描述,将会显示在页面中,如果超过一定行数会自动折叠

3其他

点击log.txt可以查看log文件

点击步骤的眼睛图标可以查看上下文

点击图片缩略图会显示对应步骤的执行情况

总结

  Airtest操作比较简单,基本上不涉及到代码,所以非常适合刚入门没什么测试经验的人利用这个工具做UI自动化测试,同时Airetest又提供了开源的API,让资深测试工程师可以基于Airtest的框架上再做高级的定制化扩展功能。