设为首页 加入收藏

TOP

Windows项目里的图像识别框架Airtest自动化测试实践(一)
2023-07-23 13:27:19 】 浏览:110
Tags:Windows 项目里 别框架 Airtest

回顾我上个星期分享了??《 高效编写C#图像处理程序(3) Rgb=>Lab,图像缺陷检测的案例》??,但sikuli看起来怎么都像是上个世纪的界面风格,且功能过于简陋。而同样基于图像识别框架的Airtest,则无疑强大了许多,本次分享的内容是基于Airtest实现Windows应用的自动化测试,内容大纲:

  • Airtest框架介绍:Airtest适用项目、Airtest特点、Airtest的优势
  • Airtest框架组成、原理
  • Airtest环境搭建及IDE的简单使用
  • Airtest开展Windows应用自动化测试实践:
    连接Windows应用
    Windows常用API
    编写测试代码
    设计测试用例
    运行效果
    查看测试报告
  • 总结与思考

一、Airtest框架介绍

1.Airtest介绍

Airtest是网易出品的一款基于图像识别和Poco控件识别的一款UI自动化测试工具。这个框架设计来源于新颖的图形脚本语言Sikuli,关于Sikuli框架可见上一篇分享??《基于Sikuli GUI图像识别框架的PC客户端自动化测试实践》???。和Sikuli框架的原理一样,用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。另外,Airtest也可以基于poco这个UI控件搜索框架,通过控件的名称、id之类的来定位目标控件,原理类似于 appium。官网:??http://airtest.netease.com/ ??

2.Airtest适用项目

基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_02

3.Airtest特点

  • 跨平台
  • 易操作
  • 可扩展
  • 支持GUI编辑器

4.Airtest的优势

相比于其他的自动化测试框架,Airtest主要有如下两个优势:

  • 大幅度降低自动化脚本的编写和维护成本

基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_03基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_04

  • 解决游戏测试的痛点

?

二、Airtest框架组成、原理

1.Airtest框架组成

基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_05

  • Airtest:是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、 Android和iOS;
  • Poco:是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx/Android原生app/iOS原生app/ 微信小程序,也可以在其他引擎中自行接入poco-sdk来使用;
  • AirtestIDE:跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够快速简单地 编写Airtest和Poco代码;
  • AirLab:真机自动化云测试平台,目前提供了TOP100手机兼容性测试、海外云真机兼容性测试等服务;

2.Airtest工作原理

基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_06

?

三、Airtest环境搭建及IDE的简单使用

官方文档:??https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/??

1.下载安装

1)安装python

由于Airtest框架是基于python语言开发,本地需要搭建python相关环境,建议使用python3,?Python 下载地址:??https://www.python.org/downloads/???

2)下载AirtestIDE客户端

AirtestIDE客户端下载:

Windows?系统用户在官网上下载对应32位或是64位版本的zip包,解压后得到AirtestIDE文件夹,双击AirtestIDE/AirtestIDE.exe即可启动

基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_07

2.Airtest IDE使用

1)生成报告

Airtest运行完成后,会自动生成一份报告,通过下图按钮可以查看,点击后会自动启动浏览器查看报告

基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_08基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_09

2)图片/代码模式切换

Airtest IDE中右键,即可两种模式相互切换

基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_10基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_11

切换后的效果如下:

基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_12基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_13

?

四、Airtest开展Windows应用自动化测试实践

1.连接Windows应用

连接Windows应用有三种方法,分别是:

1)通过搜索窗口连接

设备窗-Windows窗口连接-搜索窗口,选择窗基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_15

2)通过句柄连接

(由于句柄容易发生变化,因此不推荐此连接方式):下图的67330即为企业微信的句柄

基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_17

3)通过正则匹配应用应用标题进行连接

if not cli_setup:
auto_setup(__file__, logdir=True, devices=["Windows:///?title_re=.*阅云*"])

2.Windows常用API

官方文档:??https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.win.win.html??

源码:??https://airtest.readthedocs.io/zh_CN/latest/_modules/airtest/core/win/win.html??

  • connect:连接设备
  • shell:执行cmd命令
  • snapshot:截图
  • keyevent:执行键盘事件
  • text:输入文本
  • key_press:按下某个按键
  • key_release:释放某个按键
  • touch:鼠标点击事件
  • double_click:鼠标双击
  • swipe:滑动
  • move_mouse:移动鼠标
  • mouse_down:按下鼠标(左/右)键
  • mouse_up:释放鼠标(左/右)键

3.编写测试代码

先看下待测试的windows应用的页面布局:

基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_18

1)代码构成

基于图像识别框架Airtest的Windows项目自动化测试实践_Windows自动化测试_19基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_20

  • 导入核心api和初始化客户端的方法
__author__ = "Administrator"
import random
from airtest.core.api import *
from airtest.cli.parser import cli_setup
  • 连接windows应用
if not cli_setup:
auto_setup(__file__, logdir=True, devices=["Windows:///?title_re=.*阅云*"])
  • Airtest IDE遵循python编码风格,因此可以将各个测试动作/场景封装成一个一个的函数,当然也可以封装在其他文件里,然后导入引用

基于图像识别框架Airtest的Windows项目自动化测试实践_自动化测试_21基于图像识别框架Airtest的Windows项目自动化测试实践_GUI自动化测试_22

2)案例

  • 发送文本消息:

操作步骤为:进入聊天窗口>输入文本内容>发送

def send_text(time):
setup_send_msg()
for i in range(time):
text("这是AIRTEST发送的第%s条消息"%str(i))
keyevent("{ENTER}")
keyevent("{ENTER}")

 

  • 截图发送

点击截图按钮>滑动鼠标拉取截图区域>确认发送截图

操作步骤为:进入聊天窗口>点击截图按钮>滑动鼠标拉取截图区域>确认发送截图

def send_screenshot():
setup_sen
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【操作系统】再谈文件 下一篇C++入门实战-通讯录管理系统

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目