Airtest 的常用库——poco

Airtest是网易推出的UI自动化测试工具,结合图像识别和Poco控件识别。Poco是其跨平台的U测试框架,类似appium,通过控件属性进行定位和操作。对于Android和iOS原生应用,Poco能直接获取UI层级并编写自动化脚本。本文介绍了Poco的使用和基本语法。

有朋友说Python最好用的编辑器是pycharm,但也有人说是airtest,(反正我都喜欢)

1. 前言

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。Airtest简直把电脑变成了树莓派这样的虚拟机!

另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。

(airtesst需要配置,详见https://www.cnblogs.com/test095722/p/12932474.html

2. Poco介绍

对于Android和iOS平台上的原生应用(包括系统界面),可以直接使用Poco

IOS 原生应用

对于iOS原生应用,Poco同样可以获取到UI层级结构。除了下载运行Airtest IDE之外,我们还需要运行ios-Tagent项目,才可以获取到iOS界面的UI信息。具体步骤如下

  1. 连接iOS手机,启动
### 关于AirTestPoco的使用教程 #### AirTestPoco简介 AirTest是一个用于UI自动化的框架,支持多平台的应用程序测试。它能够通过图像匹配技术来定位界面元素并执行交互动作。而Poco则是由AirTest团队开发的一个专门针对原生应用、H5页面以及Unity3D游戏等场景下的UI自动化解决方案[^1]。 #### 安装配置环境 为了开始使用AirTest IDE进行脚本编写,在官方网站可以找到详细的安装指南。完成安装之后就可以启动IDE连接目标设备,并加载待测应用程序实例,比如对于基于Unity引擎的游戏客户端来说,只需要按照官方文档中的指导步骤操作即可实现连接。 #### 封装断言方法 当构建测试案例时,通常会涉及到验证某些条件是否满足的情况。可以通过定义自定义函数的方式来简化这一过程。例如创建一个名为`assert_exists()`的方法用来确认特定图片是否存在屏幕上: ```python def assert_exists(template, msg=""): try: pos = exists(template) if not pos: raise AssertionError(msg) except Exception as e: print(f"Assertion failed: {msg}") raise e ``` 此段代码实现了基本的存在性校验逻辑,如果未能发现指定模板则抛出异常提示失败原因[^2]。 #### 给父类添加ADB命令的支持 为了让整个框架更加灵活易用,还可以考虑扩展基础类的功能使其具备调用Android Debug Bridge (ADB)的能力。这允许开发者直接发送指令到安卓终端从而获取更多控制权或者辅助信息。具体做法是在基底类中加入相应成员变量保存Shell对象以便后续调用: ```python from airtest.core.api import device as current_device class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.shell = current_device().shell ``` 这样做的好处在于可以在子类里方便地访问这个属性进而发出各种类型的请求。 #### Poco常用API概览 - `agent.wait_for_application_launch()`: 等待应用程序完全启动后再继续下一步骤; - `poco(text="Start").click()`: 查找具有给定文本标签的对象并模拟点击事件; - `poco("ButtonName").get_text()`: 获取按钮上的文字内容作为返回值; - `poco.swipe([start_x,start_y],[end_x,end_y])`: 执行从起点坐标至终点坐标的拖拽手势; 上述列举了一些常用的接口供参考,实际上还有许多其他功能等待探索[^4]。 #### 商店测试样例 假设要对某款手机App内的商品详情页做一系列检查工作,则可能涉及如下几个方面: - 验证首页推荐位展示正常; - 测试搜索栏输入关键词后的响应情况; - 对比不同分类列表项之间的差异; - 跳转至支付环节前的各项参数设置正确与否等等。 每一步都需要精心设计对应的判断依据以确保最终结果的有效性和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值