python-自动化Airtest-1Airtest IDE篇

  • Post author:
  • Post category:python




一:Airtest 简介

为了降低自动化测试的门槛,用更少的精力产出更多高效的自动化脚本,来达到提升测试效率的目的,网易推出了一整套解决方案,项目命名为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云测试服务



二:Airtest IDE界面简介


菜单栏与快捷方式按钮




常用:

窗口:编辑界面显示功能窗口


辅助窗口-主要是调用一些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中的操作指令,再到连接设备窗口中截图,完成一条操作步骤

在这里插入图片描述


日志区域


在这里插入图片描述

其中调节过滤框可以调整输出日志


模拟器框


在这里插入图片描述



三:Airtest IDE自动化测试



1> 设备链接

adb 调通后—》点击Airtest 上connect 按钮–》显示镜像信息表示连接上

或者连上模拟器;



2> demo 调试


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+/ 多行注释



四:Airtest IDE 语法API



1> text API

在这里插入图片描述

确认光标在时,点击text 输入内容–需要input 信息

注意:自动化时要确定方标位置

text(text, enter =True,search = False)

@text: 输入文本

@enter 完成后自动执行enter操作,默认为True

@search 完成后强制执行search操作,默认为False



2> touch API

在这里插入图片描述

点击Touch 后在右侧模拟器屏幕上点击画出–点击区域

截图信息自动转为代码 ==》 touch(图标信息)



3> wait API

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点击操作

为节约系统资源和时间可以:

在这里插入图片描述



4> swip API

作用:从一个位置滑动到另一个位置

参数:

VI:点击图片或者坐标

V2:图片或者坐标

vector:【x,y】录制的自动生成;记录滑动比例;向右X轴为正向,向下为Y轴为正向

duration:滑动操作的持续时长,默认,0.5s


第一种方法:


在这里插入图片描述

第二种方法:

在这里插入图片描述



5> keyevent API

参数:

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操作;

在这里插入图片描述



6> sleep API

功能:暂停时间等待,单位s,默认1.0s

在这里插入图片描述

sleep(1.0)



7> snapshot API

功能:截图,截图当前屏幕,可在测试报告中显示

参数:

filename:保存截图为指定文件

msg:描述测试点,可以在html测试报告中体现;

在这里插入图片描述

运行截图并添加监测点:

snapshot(msg=“截图界面是否存在淘宝安装图标.”)

查看html报告-及截图信息

在这里插入图片描述



8> exits API

功能:判断图片是否存在,存在返回图片中心坐标,不存在返回False

参数:

V:图片

return:返回值,存在返回坐标,不存在返回False;

在这里插入图片描述

实例:

在这里插入图片描述

no cmdline args
start...
(390, 491)
[Finished]

测试报告内容:

在这里插入图片描述

在这里插入图片描述



9> assert_exists&assert_not_exists

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报错;
在这里插入图片描述



10> assert_equal&assert_not_equal

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:

在这里插入图片描述



五:代码篇 Airtest包



1>python-自动化Airtest-2代码篇 Airtest包


https://blog.csdn.net/weixin_42914706/article/details/125136786



版权声明:本文为weixin_42914706原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。