新闻详情

新闻详情

首页 / 资讯中心 / 详情

Airtest 与 Poco 手游自动化测试(上篇)

发布时间:2026/9/28 20:25:10来源:尧图网络
Airtest 与 Poco 手游自动化测试(上篇)
前言准备篇我们把环境跑通了还截了第一张屏。从这篇开始正式干活用 Airtest 的眼睛和手操作 App。我们会先搞懂 Airtest 找图的原理再逐个学会六个核心 API最后在官方 AirtestDemo 上跑通第一个完整用例。学完这篇你就具备独立写一个简单自动化脚本的能力了。1. 核心思路一切操作都基于当前屏幕画面先想一个问题Airtest 怎么知道开始游戏按钮在哪答案不是坐标不是控件而是——它先截一张当前屏幕的图然后在图里找你要的那张小图。找到了小图的中心位置就是按钮的位置点那里就行。这个思路决定了 Airtest 的一切操作模式截屏拿当前画面找目标图在画面里匹配小图操作在找到的位置点击/滑动/输入。所以用 Airtest 写脚本本质是用图片描述你想操作的东西。你需要先准备好目标图片比如按钮截图脚本才能找到它。2. 图片识别原理模板匹配Airtest 找图的技术叫模板匹配template matching。原理很简单你有一张小图模板和一张大图当前屏幕截图程序把小图放在大图的各个位置逐个比对相似度找到最像的位置。fromairtest.core.apiimport*# 在屏幕里找 start_btn.png 这张小图touch(Template(rstart_btn.png))这里有一个重要参数相似度阈值threshold。# 相似度要 0.8 以上才认为匹配成功0~1越大越严格touch(Template(rstart_btn.png,threshold0.8))threshold 越高找得越挑不容易点错但也可能找不到比如按钮颜色稍有变化threshold 越低越容易找到但可能点错位置。新手容易在找不到图和点错图之间反复横跳。记住一句话找不到就调低一点点错了就调高一点。后面实战里我们会具体体会。3. 六个核心 APIAirtest 常用 API 就六个每个都很直白。我们挨个看都配代码和大白话解释。3.1 snapshot截屏fromairtest.core.apiimport*# 截一张当前屏幕保存为图片文件snapshot(home.png)大白话拍个照存下来。用于查看当前状态、留证据、或者作为下一步找图的基础。3.2 touch点击# 在屏幕上找到这张图点它的中心位置touch(Template(rstart_btn.png))大白话看到这个按钮点它。这是 Airtest 用得最多的操作。3.3 swipe滑动# 从屏幕 (500, 1500) 滑到 (500, 500)也就是向上滑一屏swipe((500,1500),(500,500))大白话在屏幕上划一下。坐标是屏幕像素坐标上滑列表、翻页都靠它。也可以基于图片滑动比如从这张图的位置向上滑动一段距离# 从列表第一项这张图的位置向上滑动swipe(Template(rfirst_item.png),vector[0,-0.5])3.4 text输入文字# 在光标处输入文字前提输入框已经获得焦点text(hello)大白话打字。测登录、搜索时用。注意它输入到当前焦点位置所以通常先点击输入框再输入。3.5 assert_exists断言# 断言屏幕上必须出现这张图否则测试失败assert_exists(Template(rlogin_success.png),登录成功页出现了)大白话检查这个东西在不在。在测试继续不在测试直接失败。这是自动化测试的灵魂——跑完要知道对没对。3.6 wait等待# 等待这张图出现最多等 10 秒超时算失败wait(Template(rhome.png),timeout10)大白话等它出现。App 启动、页面加载都需要时间直接操作会扑空先等目标出现再动手。4. 完整用例AirtestDemo 主流程现在把六个 API 串起来跑一个真实用例。场景打开 AirtestDemo点开始游戏滑动列表点进详情断言结果。先确保模拟器连着、AirtestDemo 装着准备篇做完的事。fromairtest.core.apiimport*# 1. 连接模拟器MuMu 用 7555雷电用 5555connect_device(Android:///127.0.0.1:7555)# 2. 启动 AirtestDemo包名以你安装的版本为准可用 adb shell pm list packages 查询start_app(com.netease.airtestdemo)# 3. 等待主页出现最多 10 秒wait(Template(rhome.png),timeout10)# 4. 点击开始游戏按钮touch(Template(rstart_btn.png,threshold0.8))# 5. 等游戏界面加载sleep(2)# 6. 向上滑动浏览列表swipe((500,1500),(500,500))# 7. 点击列表里的某一项用它的截图touch(Template(ritem.png))# 8. 断言详情页的标题出现了assert_exists(Template(rdetail_title.png),进入了详情页)# 9. 截屏留证snapshot(case_done.png)逐行解释一遍关键点start_app(包名)直接拉起 App比手动点击图标稳定wait(...)放在touch前面先等目标出现再操作这是脚本不手忙脚乱的关键threshold0.8找按钮时要求相似度 0.8 以上防止点错sleep(2)页面切换需要时间简单粗暴地等一下assert_exists(..., 说明)第二参数是失败时的提示文字写清楚点报错时一看就懂。运行之后如果一切顺利你会得到一张case_done.png里面是详情页的画面——这就是你写的第一个完整测试用例。如果某一步失败怎么办找不到图是新手最常遇到的。按这个顺序排查先snapshot()截屏肉眼看看当前画面是不是你想的那样确认截图里的按钮和模板图长得像尺寸、颜色、是否被遮挡把threshold调低一点比如 0.8 → 0.7再试。这个排查思路很朴素但 90% 的找不到图都是这样解决的。小结这篇我们掌握了 Airtest 的完整套路核心思路一切操作基于当前屏幕画面截屏 → 找图 → 操作图片识别原理模板匹配 threshold 阈值六个核心 APIsnapshot / touch / swipe / text / assert_exists / wait跑通了第一个完整用例启动 → 等待 → 点击 → 滑动 → 点详情 → 断言 → 截屏。Airtest 能解决看得见、点得着的问题。但它有个天生短板靠图片认东西容易受分辨率、遮挡、相似图标影响。下一篇我们上 Poco——用控件树精准定位解决认工牌 vs 认长相的问题。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Ax:基于Kubernetes的AI智能体编排执行范式 2026/9/28 22:48:10

Ax:基于Kubernetes的AI智能体编排执行范式

1. 项目概述:从“ax”这个标题出发,我们到底在谈什么?“ax”——三个字母,像一串未解密的代号,又像一个被截断的缩写。它不是某个广为人知的开源项目名(比如 Kubernetes 的 k8s、Docker 的 docker&#xff…

阅读更多 →
Altium Designer元件库中英文对照表:从电阻电容到二极管选型避坑指南 2026/9/28 22:47:48

Altium Designer元件库中英文对照表:从电阻电容到二极管选型避坑指南

1. 为什么一张对照表能决定原理图返工率刚入行那会儿,我最怕的不是画PCB,而是打开Altium Designer的元件库面板,面对满屏的英文缩写发愣。RES、CAP、IND、DIODE、TVS、MOSFET——这些词单独看都认识,可一旦混在几百个库文件里&…

阅读更多 →
CANoe处理ASC/BLF文件时最常见的三个配置错误及避坑指南 2026/9/28 22:47:41

CANoe处理ASC/BLF文件时最常见的三个配置错误及避坑指南

1. 为什么ASC/BLF文件处理总在关键时刻掉链子搞车载总线测试的兄弟对CANoe肯定不陌生,Vector这套工具链在总线仿真、诊断、标定这些环节基本是绕不开的存在。日常干活的时候,我们经常需要把路试采集的数据、台架跑出来的日志、供应商发过来的报文记录&am…

阅读更多 →
ST25DV NFC天线阻抗匹配与量产级设计方法 2026/9/28 22:47:07

ST25DV NFC天线阻抗匹配与量产级设计方法

1. 这不是“画个线圈就完事”的NFC天线设计,而是用ST25DV芯片在PCB上构建可量产、可复现、可调试的射频前端系统你手头有一颗ST25DV系列动态NFC标签芯片——它不是普通RFID芯片,而是集成了IC接口、EEPROM、能量采集和双向通信能力的智能标签核心。你想把…

阅读更多 →
ST25DV NFC天线参数化设计:KiCad+Python实现精准匹配 2026/9/28 22:47:07

ST25DV NFC天线参数化设计:KiCad+Python实现精准匹配

1. 项目概述:为什么一个NFC标签天线设计值得花三小时写清楚我去年帮一家智能仓储设备厂商做RFID/NFC兼容升级,客户提了个看似简单的需求:“在现有PCB上加个NFC标签,能被手机和工业读卡器稳定识别,尺寸不能超1212mm&…

阅读更多 →
HDMI转MIPI DSI桥接芯片MS1861全流程实战:从选型到点亮调试 2026/9/28 22:47:00

HDMI转MIPI DSI桥接芯片MS1861全流程实战:从选型到点亮调试

MS1861这颗芯片在显示方案圈子里其实不算新面孔,但真正把它用稳、用透的人并不多。我最近刚完成一个把HDMI信号转成MIPI DSI去驱动一块7寸1280x800 IPS屏的项目,从选型、原理图设计、PCB Layout到点亮调试,前后踩了不少坑。这篇文章就把整个过…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉