参考文章链接: https://airtest.doc.io.netease.com/
前言
Airtest是一款基于Python的、跨平台的UI自动化测试框架(app、web、h5都可操作),基于图像识别原理,适用于游戏和App。
需要注意.air文件夹中必须要有同名的.py文件,否则在命令行执行airtest run test.air指令时会导致失败
在使用AirtestIDE录制Airtwebest脚本前需要先连上一个设备(Android手机);
支持手工按键录制与自动录制(自动录制时截图存在较大偏差,所以个人更偏向手工按键录制);同时可以通过使用Python的判断、循环等语法,让脚本实现更加复杂的功能,完成自动化测试的需求。
Airtest脚本示例1
脚本示例内容:(AirtestIDE中会自动将Template(xxxx)渲染为图片形式)
# -*- encoding=utf8 -*-
__author__ = "CT"
from airtest.core.api import *
touch(Template(r"tpl1580904227533.png", record_pos=(-0.356, 0.307), resolution=(1080, 1920)))
wait(Template(r"tpl1580904254866.png", record_pos=(0.389, 0.815), resolution=(1080, 1920)))
touch(Template(r"tpl1580904278947.png", record_pos=(0.393, 0.82), resolution=(1080, 1920)))
wait(Template(r"tpl1580904298360.png", record_pos=(-0.347, -0.267), resolution=(1080, 1920)))
touch(Template(r"tpl1580904310243.png", record_pos=(-0.347, -0.267), resolution=(1080, 1920)))
exists(Template(r"tpl1580904509179.png", record_pos=(-0.221, -0.071), resolution=(1080, 1920)))
touch(Template(r"tpl1580904519509.png", record_pos=(-0.222, -0.069), resolution=(1080, 1920)))
wait(Template(r"tpl1580904542484.png", record_pos=(-0.29, -0.579), resolution=(1080, 1920)))
touch(Template(r"tpl1580904560819.png", record_pos=(0.414, 0.811), resolution=(1080, 1920)))
wait(Template(r"tpl1580904606171.png", record_pos=(0.003, 0.629), resolution=(1080, 1920)))
touch(Template(r"tpl1580904615973.png", record_pos=(0.018, 0.744), resolution=(1080, 1920)))
sleep(1.0)
touch(Template(r"tpl1580904655802.png", record_pos=(-0.425, -0.773), resolution=(1080, 1920)))
wait(Template(r"tpl1580904686323.png", record_pos=(-0.251, -0.656), resolution=(1080, 1920)))
如果auto_setup不传入任何参数的话,Airtest将会读取运行时命令行中传入的各项参数,来对环境进行初始化。
在AirtestIDE创建脚本时,默认生成的代码里是最简单的初始化代码auto_setup(__file__),意思是将脚本文件作为脚本路径传入,其他参数内容将默认读取运行命令行传入的参数。
Airtest脚本示例2
简单录制微信搜一搜里面圈子中的投稿功能,具体涉及如下(暂时请忽略截图的大小不一的视觉难受😫)
运行方式
方式1:直接在IDE上点击运行按钮,并在“Log查看窗”查看每一步执行的日志输出,“Log查看窗”中会自动生成一个可用的命令行,可以供大家作为参考
方式2:脚本运行命令行有两种形式,命令行中的参数包含device、log等:
命令行运行Airtest脚本的示例:airtest run untitled.air --device Android:///手机设备号 --log log/XXX
设备连接
在运行时的命令行中如果传入了类似--device Android:///这样的设备参数,那么脚本在初始化时会自动连上对应的设备,不需要再另外写代码连接了。
如果没有在初始化时连上设备,可以在脚本代码中使用connect_device接口来连接设备。
Airtest支持在一个脚本里同时连接多个设备,使用set_current接口可以在多个设备中进行切换,device()接口可以获取到当前使用中的设备。
操作接口
Airtest作为自动化测试框架,模拟的是人的操作,常见操作接口主要有:
touch 点击某个位置,可以设定被点击的位置、次数、按住时长等参数
swipe 从一个位置滑动到另外一个位置
text 调用输入法输入指定内容
keyevent 输入某个按键响应,例如回车键、删除键
wait 等待某个指定的图片元素出现
snapshot 对当前画面截一张图
其他
网友评论