【大家好,我是爱干饭的猿,本文重点介绍AirTest简介、作用、AirTest搭建方式(安卓/模拟器环境)、Airtest与模拟器进行连接、图像识别框架、AirTest 断言和iOS端连接。
后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】
上一篇文章:《【Redis7】Spring Boot集成Redis(重点:集成RedisTemplate)》
目录
🍠1. AirTest简介
Airtest由网易团队出品,是一个基于图像识别原理的跨平台UI自动化测试框架,适用于安卓应用测试、游戏测试、web应用测试、ios应用、windows应用。
特点∶
- 跨平台:Airtest几乎可以在所有平台上执行游戏和App的自动化
- 易操作∶使用图像识别技术来定位UI元素,无需嵌入任何代码即可对游戏和应用进行自动化
- 可扩展性:通过使用Airtest提供的命令行与python API接口,可以很轻松地在大规模设备集群上运行脚本
- GUI工具:AirtestIDE是一个强大的GUI工具,可以帮助你录制和调试测试脚本
🍠2. 作用
特点∶
- Game :借助图像识别和UI层次结构,支持所有游戏引擎和应用,多平台,使用方便
- Android : Android源生应用测试的测试过程中,Airtest可以发挥至关重要的作用,即插即用
- winodws :支持Windows应用,一次编写,跨平台运行
- iOS : Airtest支持对iOS进行方便快捷的测试,可以通过Poco来快捷获取iOS设备页面中的原生元素的位置和信息。
- Web:基于Chrome Devtools Protocol协议,自动录制生成selenium脚本,精确定位与操作界面元素
AirTest有Poco、图像识别、selenium三个大类库
🍠3. AirTest搭建方式(安卓/模拟器环境)
- python:
- 命令: pip install -U airtest
- 说明︰安装python的AirTest库,通过python代码直接调用AirTest库的Api方法
- Gui工具:
- 工具: AirTestIDE
- 说明:AirTestIDE工具自带python环境,无需单独安装。
- 提示:使用工具可以录制操作,也可以手动编写调用api
下载地址:Airtest Project
🍠4. Airtest与模拟器/安卓设备进行连接
- 打开开发者模式(设置->关于手机->版本号->多次点击->开启开发者模式)
- 打开usb调试模式
- 连接兼容模式
- 设置修改设备地址及端口号
注意:
- AirTest连接设备需要开启开发者模式及usb调试模式
- 远程连接可以修改不同设备端口号
- 勾选Use Javacap及Use ADB orientation可解决连接黑屏问题
常用模拟器及其端口如下:
🍠5. 图像识别框架
5.1 Touch方法应用
1. 步骤一:新建脚本类型选择︰
- .air AirTest项目∶生成一个项目名称.air目录,目录下有一个项目名.py文件
- .py 纯Python (高级用户)︰生成一个项目名.py文件
区别:
- 相同点︰都是python文件
- 不同点:脚本文件初始化代码不同,一个采用默认值无法看到,一个可以看到默认值,进行修改
提示∶
- AirTest框架自带python解释器及标准库,无需单独安装python环境
2. 步骤二:使用Touch触摸应用:
- 点击Touch
- 拉选应用图标
3. 步骤三运行脚本
- 运行脚本
- 运行单行代码
4. 步骤四查看报告
- 快捷键Ctil+L
5.2 wait方法
- 作用∶等待某个元素出现,如果出现返回元素的中心点坐标,否则抛出TargetNotFoundError异常·常用参数∶
- v:图片
- timeout:等待超时,默认找20s
- interval:每次匹配的时间间隔
- 需求(基本使用):
- 启动app应用
- 菜单(我)出现就进行触摸点击操作
- 优化:touch(wait(图片))
- 扩展:wait(图片, interval=0.5, timeout=5)
5.3 swipe方法-基本使用
- 作用∶滑动-从屏幕的一个位置滑动到屏幕另一个位置(类似于手指在屏幕进行的滑动)
- 常用参数∶
- v1:图片或者坐标(xy)
- v2:图片或者坐标(x,y),从v1滑到v2
- vector:[xy]录制时自动生成,记录了屏幕中的滑动比例,向右为X轴正向,向下为Y轴正向
- duration:滑动操作持续时长,默认为0.5秒
- 使用:
- swipe(图片, 鼠标点击)
- swipe(图片, 图片)
- swipe((1000, 1500), (1000, 1500))
5.4 text方法
- 作用:输入文本操作
- 常用参数:
- text:要输入的文本(注︰输入的位置为当前页面默认焦点元素一般配合touch一起使用. enter:完整输入后自动执行Enter操作,默认为True)
5.5 keyevent方法
- 作用:模拟键盘按键输入,支持键码如:3为home键
- 常用参数︰
- keyname:固定键名或键码(https://www.cnblogs.com/findyou/p/5614178.html)
- keyname:固定键名或键码(https://www.cnblogs.com/findyou/p/5614178.html)
5.6 snapshot方法
- 作用︰截取当前屏幕图片,可以在测试报告显示。
- 常用参数:
- ★Filename:保存截屏为指定文件
- msg:描述测试点,可以在HTML报告中呈现
5.7 sleep方法
- 作用:暂停时间
- 常用参数:
- secs:延迟时间(s),默认1.0s
🍠6. AirTest 断言
6.1 assert_exists方法
- 作用:断言(判断)页面存在元素
- 常用参数:
- v:图片(要判断页面是否存在元素).
- msg:描述测试点
- return:找到图片则返回图片中心点坐标,否则将raise AssertionError
6.2 assert_not_exists方法
- 作用:断言(判断)页面不存在元素
- 常用参数:
- v:图片(注:判断当前页面不存在图片元素,不存在通过,存在失败).
- msg:描述测试点(测试报告中显示)
6.3 assert_equal方法
- 作用:判断第一个值与第二个值相等
- 常用参数︰
- first:第一个值
- second:第二个值
- msg:描述此断言语句对应的测试点内容
6.4 assert_not_equal方法
- 作用:判断第一个条目与第二个条目不相等
- 常用参数︰
- first:第一个值.
- second:第二个值
- msg:描述此断言语句对应的测试点内容
🍠7. iOS
7.1 AirTest搭建方式(iOS)
- 硬件:
- 一台苹果电脑(运行xcode )
- 一部iphone手机 ( app应用运行宿主机)
- 软件∶
- iOS-Tagent ( WebDriver服务器)
- 作用︰在手机上创建一个WebDriver服务器,可用于远程控制iOS设备,定位UI元
- 下载:https://github.com/facebookarchive/WebDriverAgent
- 运行依赖:xcode
- xcode ( ios集成开发工具,运行IOS-Tagent )
- 作用: ios开发集成工具,在这理主要作用为运行WebDriverAgen文件到手机
- 下载:AppSotre->平台搜索xcode
- 运行依赖∶开发者账号
- 操作:
- 添加开发者账号(普通的apple ID即可)
- 配置WebDriverAgent ( Team、Product Bundle Identifiier )测试运行
- WebDriverAgentRunner到手机
- 如果启动失败:
- 在xcode中点击Test后,第一次将WebdriverRunner时,手机需要信任该项目(设置->通用-设备管理)
- 在手机中启用UI自动化(设置->开发者->Enable UI Automation )
- 如果有其他异常,根据异常提示信息自行参考百度或访问
https://github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest-real-devices.md查阅相关解决方案
- iproxy(代理工具)
- 作用︰设置代理-将iPhone端口映射到电脑端口,通过访问电脑的端口访问到手机的端口了
- 下载: brew install libimobiledevice
- 运行:iproxy 81008100
- 验证:
- 查看:打开浏览器输入http://127.0.0.1:8100/status 出现json格式连接信息
- 抓屏:http://127.0.0.1:8100/inspector
- AirtestIDE工具(图像识别自动化测试工具)
- 作用∶编写自动化代码工具
- 下载: http://airtest.netease.com/changelog.html
- iOS-Tagent ( WebDriver服务器)
7.2 连接真机
- 将真机使用数据线连接电脑
- 启动xcode并打开配置好的iOS-Tagent项日(菜单->Product->Test启动自动化服务程序)
- 打开终端运行:iproxy 8100 8100(启动端口映射服务程序)
- 启动AirTestIDE工具(连接ios设备-> connect按钮)
注意事项:
- 在xcode中点击Test前,检查项目默认终端是否选择真机设备
- 点击在xcode中Test之后,要查看控制信息,如果控制台没任何信息输出,可以等待或者多Test几次,直到控制台输出启动相关信息
- xcode配置iOS-Tagent只需第一次配置,之后使用无需在单独配置,切莫乱修改参数
- 真机设备中,要开启自动化测试和信任iOS-Tagent项目
reids初级篇分享到此,感谢大家观看!!!
如果你喜欢这篇文章,请点赞加关注吧,或者如果你对文章有什么困惑,可以私信我。
🏓🏓🏓