赞
踩
为了降低自动化测试的门槛,用更少的精力产出更多高效的自动化脚本,来达到提升测试效率的目的,网易推出了一整套解决方案,项目命名为Airtest Project。
网易出品一个基于python 的跨平台、基于图像识别的自动化测试框架,适用于游戏、app;支持平台 AirTest在Windows、iOS、Android 款UI自动化测试工具
下载官网: https://airtest.netease.com/
代码库下载:https://github.com/AirtestProject/Airtest
支持 WebUI自动化、android App 、IOS App 自动化测试
下载内容为一个免安装的压缩包,解压后自带所有的环境,自动生成脚本,自带编辑器、模拟器等;可以直接点击打开-skip-使用
整个工具套件由Airtest IDE、Airtest、Poco、Airlab组成
Airtest IDE:跨平台的UI自动化编辑器
Airtest:基于python的跨平台的UI自动化测试框架,基于图像识别原理
Poco:基于UI空间搜索的自动化框架
Airlab:网易Airtest云测试服务
菜单栏与快捷方式按钮
常用:
窗口:编辑界面显示功能窗口
辅助窗口-主要是调用一些API
touch:触摸
swipe:滑动
wait:等待
exist:是否存在
snapshot:截屏
text:输入文本
keyevent:按键
sleep:休眠
assert_exist:断言存在
assert_not_exist:断言不存在
assert_equal:断言相等
assert_not_equal:断言不相等
Poco库-UI自动化框架
针对于游戏、app
selenium 框架
主要做web UI自动化
脚本区域
点击Airtest中的操作指令,再到连接设备窗口中截图,完成一条操作步骤
日志区域
其中调节过滤框可以调整输出日志
模拟器框
adb 调通后—》点击Airtest 上connect 按钮–》显示镜像信息表示连接上
或者连上模拟器;
Script Editor 页面运行代码
# -*- encoding=utf8 -*- __author__ = "CHH_PC" from airtest.core.api import * from airtest.cli.parser import cli_setup if not cli_setup(): auto_setup(__file__, logdir=True, devices=["android://127.0.0.1:5037/27QGL20828000064?cap_method=MINICAP&&ori_method=MINICAPORI&&touch_method=MINITOUCH",]) # script content print("start...") touch(截图点击内容) # generate html report # from airtest.report.report import simple_report # simple_report(__file__, logpath=True)
Log Viewer 日志打印
通过选择显示日志级别,选择查询运行info;报错信息也在此打印
功能窗口-查看日志
选择其他浏览器可能报错-一般选择谷歌浏览器;
运行事件、日志、运行结果、预览截图、匹配度等信息;
也可全部 成功 失败 断言 选择查看自己需要信息;
注意:调试时候可以运行选择的代码
图片识别规则设置
双击进入图片编辑模式
Snapshpt&Recongnition:截图+自动识别;如下显示和识别位置
show help: 帮助信息
右侧:
filename :文件名
threshold:阈值
target_pos:在图片上对应1-9,其中0与5在中央位置,位置一样
rgb:是否开启彩色识别
注释
和python代码注释一致;# 或者快捷按键 Ctrl+/ 多行注释
确认光标在时,点击text 输入内容–需要input 信息
注意:自动化时要确定方标位置
text(text, enter =True,search = False)
@text: 输入文本
@enter 完成后自动执行enter操作,默认为True
@search 完成后强制执行search操作,默认为False
点击Touch 后在右侧模拟器屏幕上点击画出–点击区域
截图信息自动转为代码 ==》 touch(图标信息)
wait api 包含4个元素:
V:点击的图片或者坐标
timeout:等到超市时间,默认20s
interval:每次寻找的时间间隔,默认0.5s
intervalfunc:图片没有找到,就执行后面函数,默认,None
return :返回中心坐标,或者报错;
[Start running..]
no cmdline args
start...
(520, 1397)
[Finished]
上图中进行两次找图;
wait:找到图标,并返回(520, 1397)中心坐标;
执行touch点击操作
为节约系统资源和时间可以:
作用:从一个位置滑动到另一个位置
参数:
VI:点击图片或者坐标
V2:图片或者坐标
vector:【x,y】录制的自动生成;记录滑动比例;向右X轴为正向,向下为Y轴为正向
duration:滑动操作的持续时长,默认,0.5s
第一种方法:
第二种方法:
参数:
keyname:按键名,可以是键名,可以是键码
常用的键码:
功能 | 键名 | 键码 |
---|---|---|
Home | KEYCODE_HOME | 3 |
菜单键 | KEYCODE_MENU | 82 |
返回键 | KEYCODE_BACK | 4 |
电源键 | KEYCODE_POWER | 26 |
扬声器静音键 | KEYCODE_VOLUME_MUTE | 164 |
音量增加键 | KEYCODE_VOLUME_UP | 24 |
音量减小键 | KEYCODE_VOLUME_DOWN | 25 |
回车键 | KEYCODE_ENTER | 66 |
ESC键 | KEYCODE_ESCAPE | 111 |
导航键 确定键 | KEYCODE_DPAD_CENTER | 23 |
导航键 向上 | KEYCODE_DPAD_UP | 19 |
导航键 向下 | KEYCODE_DPAD_DOWN | 20 |
导航键 向左 | KEYCODE_DPAD_LEFT | 21 |
导航键 向右 | KEYCODE_DPAD_RIGHT | 22 |
光标移动到开始键 | KEYCODE_MOVE_HOME | 122 |
光标移动到末尾键 | KEYCODE_MOVE_END | 123 |
向上翻页键 | KEYCODE_PAGE_UP | 92 |
向下翻页键 | KEYCODE_PAGE_DOWN | 93 |
退格键 | KEYCODE_DEL | 67 |
删除键 | KEYCODE_FORWARD_DEL | 112 |
例如:
返回home操作;
功能:暂停时间等待,单位s,默认1.0s
sleep(1.0)
功能:截图,截图当前屏幕,可在测试报告中显示
参数:
filename:保存截图为指定文件
msg:描述测试点,可以在html测试报告中体现;
运行截图并添加监测点:
snapshot(msg=“截图界面是否存在淘宝安装图标.”)
查看html报告-及截图信息
功能:判断图片是否存在,存在返回图片中心坐标,不存在返回False
参数:
V:图片
return:返回值,存在返回坐标,不存在返回False;
实例:
no cmdline args
start...
(390, 491)
[Finished]
测试报告内容:
assert_exists功能:
判断图片是否存在,如果存在就返回图片的中心坐标,不存在就raise AssertionError
assert_exists 参数:
V:图片
msg:描述测试点,他将被记录在报告中
return:存在返回图片中心坐标,不存在就raise AssertionError
assert_not_exists功能:
判断图片是否不存在,如果存在就raise AssertionError
assert_not_exists 参数:
V:图片
msg:描述测试点,他将被记录在报告中
例如:
degug_info:
Traceback (most recent call last):
File "AirtestIDE.py", line 82, in <module>
File "AirtestIDE.py", line 58, in main
File "app\widgets\code_runner\tracer.py", line 72, in run_pyfile
File "D:\AirtestIDE_Obj\python.py", line 18, in <module>
assert_not_exists(Template(r"tpl1654432855809.png", record_pos=(0.047, 0.261), resolution=(720, 1440)), "判断英雄联盟手游不存在")
File "airtest\utils\logwraper.py", line 90, in wrapper
File "airtest\core\api.py", line 689, in assert_not_exists
AssertionError: Template(D:\AirtestIDE_Obj\tpl1654432855809.png) exists unexpectedly at pos: (395, 909), message: 判断英雄联盟手游不存在
测试报告查询:
1.图片存在,assert_exists正常执行
2.图片存在,assert_not_exists报错;
assert_equal 功能:
判断第一个值和第二个值是否相等
assert_equal参数:
first:第一个对比条目
second:第二个对比条目
msg:监测点,测试报告中显示
assert_equal demo:
log:
assert_not_equal功能:
判断第一个值和第二个值不相等
assert_not_equal参数:
first:第一个对比条目
second:第二个对比条目
msg:监测点,测试报告中显示
assert_not_equal demo:
log:
https://blog.csdn.net/weixin_42914706/article/details/125136786
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。