【AirTest】从入门到精通

【大家好,我是爱干饭的猿,本文重点介绍AirTest简介、作用、AirTest搭建方式(安卓/模拟器环境)、Airtest与模拟器进行连接、图像识别框架、AirTest 断言和iOS端连接。

后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】

上一篇文章:《【Redis7】Spring Boot集成Redis(重点:集成RedisTemplate)》


目录

🍠1. AirTest简介

🍠2. 作用

🍠3. AirTest搭建方式(安卓/模拟器环境)

🍠4. Airtest与模拟器进行连接

🍠5. 图像识别框架

5.1 Touch方法应用

5.2 wait方法

5.3 swipe方法-基本使用

5.4 text方法

5.5 keyevent方法

5.6 snapshot方法

5.7 sleep方法

🍠6. AirTest 断言

6.1 assert_exists方法

6.2 assert_not_exists方法

6.3 assert_equal方法

6.4 assert_not_equal方法

🍠7. iOS 

7.1 AirTest搭建方式(iOS)

 7.2 连接真机


🍠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与模拟器/安卓设备进行连接

  1. 打开开发者模式(设置->关于手机->版本号->多次点击->开启开发者模式)
  2. 打开usb调试模式
  3. 连接兼容模式
  4. 设置修改设备地址及端口号

注意:

  • 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)
       

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

 7.2 连接真机

  1. 将真机使用数据线连接电脑
  2. 启动xcode并打开配置好的iOS-Tagent项日(菜单->Product->Test启动自动化服务程序)
  3. 打开终端运行:iproxy 8100 8100(启动端口映射服务程序)
  4. 启动AirTestIDE工具(连接ios设备-> connect按钮) 

注意事项:

  1. 在xcode中点击Test前,检查项目默认终端是否选择真机设备
  2. 点击在xcode中Test之后,要查看控制信息,如果控制台没任何信息输出,可以等待或者多Test几次,直到控制台输出启动相关信息
  3. xcode配置iOS-Tagent只需第一次配置,之后使用无需在单独配置,切莫乱修改参数
  4. 真机设备中,要开启自动化测试和信任iOS-Tagent项目

reids初级篇分享到此,感谢大家观看!!!

如果你喜欢这篇文章,请点赞关注吧,或者如果你对文章有什么困惑,可以私信我。

🏓🏓🏓

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱干饭的猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值