Airtest 是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和ios。
Airtest 不仅是做app自动化测试,也可以做浏览器自动化,windows桌面游戏自动化。
Airtest 除了做自动化,也可以配合抓包工具做数据采集。
官网:https://airtest.netease.com/home/
下载安装非常简单,官网直接download就行。
原理之类的不介绍了,官方的文档中说的很详细。
设备连接
我说一下Airtest和夜神模拟器的连接。
我也不清楚为什么,用移动设备连接,通过端口62001连接时很容易崩溃,所以不说这个了。
好在AirtestIDE提供了一键嵌入Windows窗口的功能,点击选择游戏画面,就能把模拟器附加到设备窗中了。
一键嵌入功能主要依靠Airtest进行位置定位,使用 pywinauto的操作接口进行模拟操作。
辅助窗
Airtest主辅助窗提供了很多可操作的方法,当点击选择一个后,就可以到设备窗口中操作,此时脚本编辑窗也会出现代码。
非常简单好用,大家自己测一下就明白了。
- touch 点击,
- wait 等待某元素出现
- swipe 滑动
- exists 存在
- text 输入文本
- keyevent 键盘事件
- snapshot 截屏
- sleep 休眠
测试
测试示例1:
图中意思是,在列表页根据图片对应内容,进行 touch 点击操作,进入详情页,然后通过 wait 团购详情页图等待进入。
然后swipe 根据图片位置进行向下滑动。
最好touch点击返回列表页。
swipe是可以根据坐标操作的。假设x,y是宽和高。
swipe((0.1x,0.1y),(0.1x,0.5*y),duration=1)
点击一次坐标为(100,100)的位置
touch((100,100),times=1)
测试示例2:
这段测试是用Airtest在抖音APP给自己爱豆的相关视频点赞
运行视频:
Airtest简单测试
因为我用的模拟器,没有登录抖音账号,所以把点赞的代码注释了。
另外坐标需要根据你的设备分辨率调整。
复制出来的代码如下:
# -*- encoding=utf8 -*-
__author__ = "lx"
from airtest.core.api import *
auto_setup(__file__)
touch(Template(r"tpl1629433593887.png", record_pos=(0.431, -0.74), resolution=(404, 746)))
wait(Template(r"tpl1629433645167.png", record_pos=(0.423, -0.738), resolution=(404, 746)))
text("鞠婧祎")
touch(Template(r"tpl1629433645167.png", record_pos=(0.423, -0.738), resolution=(404, 746)))
touch(Template(r"tpl1629433692867.png", record_pos=(-0.203, -0.639), resolution=(404, 746)))
sleep(2.0)
touch((80,220),times=1)
for i in range(5):
#touch((374,421),times=1)
swipe((140,520),(140,120),1)
如果想研究的话,推荐使用真机进行连接,然后用Airtest结合Poco编写完整的自动化脚本。