基于图像识别原理的UI自动化工具——Airtest入门
一.背景
1当前UI自动化面临的问题
难以使用一套工具对移动端、web端、桌面端进行自动化测试
- 版本更新页面改动较大,自动化脚本的维护成本高
- 图片内容难以验证
2 解决方案
用图像识别方法代替传统坐标定位方法进行UI自动化设计
二.Airtest自动化简介
Airtest是一个跨平台的UI自动化测试框架,基于图像识别原理。Airtest IDE操作页面如图
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
双击图标运行
1.2MacOS用户
- 在官网下载AirtestIDE.dmg后双击解压,将AirtestIDE.app拖入应用程序Application文件夹中即可
- 第一次启动时可能会有闪退问题,再次启动即可正常使用
2.界面介绍
导航栏:主要是脚本文件的管理,和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.编写脚本
操作指令:
- 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辅助窗的自动化录制按键开始录制
在右侧连接侯的设备窗设备截图区域操作,相应动作会被自动录制为代码,并且会自动截取操作区域的图片
操作之间需要手动添加wait或者sleep,否则很可能因为操作和显示不同步而失败
自动截取的图片通常不是很准确,建议手动截取图片
1.2.2手动录制脚本
点击Airtest中的操作指令,再到连接设备窗口中截图,完成一条操作步骤
2.执行脚本
点击菜单栏运行按键或者按F5开始执行脚本
也可以通过命令行的方式运行:airtest run “path to your .air dir” --device Android : / / /
五.查看报告
在AirtestIDE中,可以点击上侧图标菜单的最后那个“查看报告”的按钮,快捷键为Ctrl+L,稍后片刻将会自动使用默认浏览器打开结果报告页面
1报告内容
报告主要分为两部分:
①在报告的上半部分,可以看到与报告相关的一些信息,比如:报告的名称、作者、报告描述(可自定义)以及快览等等。点击任意一张快览,下方会展示相应的测试信息。
②报告的下半部分,详细展示了每一个测试动作及其执行情况。单击左侧的测试动作,右侧会显示出相应动作执行结果的详细情况。并且我们还可以在右侧对不同执行结果进行筛选。
2自定义报告描述
如果在脚本中写到了以下内容,将会在报告中显示出来:
author 对应脚本作者
title 对应脚本标题
__desc__可以写较长的脚本描述,将会显示在页面中,如果超过一定行数会自动折叠
3其他
点击log.txt可以查看log文件点击步骤的眼睛图标可以查看上下文点击图片缩略图会显示对应步骤的执行情况
总结
Airtest操作比较简单,基本上不涉及到代码,所以非常适合刚入门没什么测试经验的人利用这个工具做UI自动化测试,同时Airetest又提供了开源的API,让资深测试工程师可以基于Airtest的框架上再做高级的定制化扩展功能。
最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!推荐软件测试交流学习群:914172719 里面会分享一些资深架构师录制的视频录像
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
基于图像识别原理的UI自动化工具——Airtest入门相关推荐
- UI自动化工具——Airtest
Airtest介绍 Airtest:跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App. AirtestIDE:跨平台的UI自动化测试编辑器. AirtestIDE下载及运行 下载地址: ...
- Airtest 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架 同时也支持原生Android App 的基于元素识别的UI自动化测试. 本文主要使 ...
- 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架 同时也支持原生Android App 的基于元素识别的UI自动化测试. 本文主要使 ...
- 网易 UI 自动化工具 Airtest
分享一个游戏测试的自动化UI测试工具,该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架,同时也支持原生Android App 的基于元素识别的UI ...
- POCO软件测试自学,自动化UI测试工具airtest 之V2.2 airtest文档学习POCO
图片发自简书App 一个编程大白,我在学自动化UI测试工具airtest. 一.硬件软件的准备与连接 二.学习AirtestIDE官方文档 三.用Airtest对多台手机操控 四.纯python代码操 ...
- 浅尝UI自动化之Airtest实践
1.浅尝UI自动化之Airtest实践 背景 由于很多公司都采用敏捷开发的模式,测试也要跟着进行敏捷测试.而每个迭代的周期非常短,经常要对原有功能进行回归测试,这样就增加了大量重复人力成本. 引入UI ...
- 【得物技术】浅尝UI自动化之Airtest实践
一.背景 由于很多公司都采用敏捷开发的模式,测试也要跟着进行敏捷测试.而每个迭代的周期非常短,经常要对原有功能进行回归测试,这样就增加了大量重复人力成本.引入UI自动化测试可以用来快速回归测试app原 ...
- windows桌面应用程序UI自动化工具(转载)
原文地址:windows桌面应用程序UI自动化工具 - anobscureretreat - 博客园 最近在研究针对windows桌面应用程序的自动化工具,查找了网上相关资料,UI自动化工具很多,但是 ...
- 【自动化测试】推荐一款超好用的ui自动化工具--uiautomator2
今天直接进入正文,给大家推荐一款超级好用的ui自动化工具 uiautomator2 正文来了 我将从以下几个方面,向大家介绍 uiautormator2,希望该项目的作者看到我的文章之后,可以请我喝杯 ...
最新文章
- 食堂就餐刷卡系统源码_智慧食堂重新定义你的食堂管理系统
- R语言as.double函数(转化为浮点型)和is.double函数(检验是否为浮点型)实战
- 洛古 P1373 小a和uim之大逃离
- 第一代计算机到第四代计算机基本知识,[Ch01_计算机系统基本知识.ppt
- ZooKeeper配额
- 拼多多稳了,字节跳动开发新APP,是谁杀死了淘宝?
- 解决MySQL事务未提交导致死锁报错 避免死锁的方法
- android开发启动画面,Android开发笔记——如何正确实现App启动页
- Spring 中的隔离级别
- Python3.7模块之hashlib
- TensorFlow(一)
- java 获取cer证书指纹_获取SSL证书的指纹
- Stata15重编码
- 基于python的电影推荐系统
- 查看mysql汉字占用的字节数_一个汉字在数据库占几个字节
- 中科大自主招生2018笔试数学之三
- C语言练习(一球从M米高度自由下落,每次落地后返回原高度的一半,再落下,它在第N次落地时共经过多少米?反弹多高?)
- 机器学习基本概念知识汇
- Putty将公钥私钥文件改成ppk文件
- Git的管理、撤销、删除以及创建远程仓库
热门文章
- java接口中只能定义常量和抽象方法_接口中只能定义常量和抽象方法。( )_学小易找答案...
- 看书神器 MartView
- 视频教程 | Egret Pro 入门学习笔记(10):认识模型
- 格西烽火使用教程一 自定义解析数据并回复
- 有什么软件可以视频转音频?这些转换软件值得你收藏
- matlab linprog用法,如何使用Linprog()编写最优解,要求如下
- Express接收post参数
- 《J2SE 回炉再造04》-------溺水狗
- 学习日记--web项目字体添加
- 3.2.6 Set接口及其实现类