带你从0开始学习自动化框架Airtest

现在市面上做UI自动化的框架很多,包括我们常用的Web自动化框架Selenium,移动端自动化框架Appium。

虽然Selenium和Appium分属同源,而且API都有很多相同的地方,可以无损耗切换,但是还是需要引入不同的库,而且偏向UI层面的自动化有一个很大的痛点,就是元素定位会差一些,所以在这个过程中,通过各种各样的手段,比如引入OCR图像识别技术,很多都会使用原生的open-CV,在这个过程中,识别率就是我们要解决的一大问题。

在这种情况下,有一个框架横空出世,就是网易游戏推出的Airtest Project。

01、组件构成

Airtest Project项目由几个组件构成:

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

除了以上的可被直接使用的几个组件之外,网易游戏还提供了云测试平台AirLab,还有私有化手机集群技术方案。可以拿来做商业化方案。

刚刚前面讲了,Airtest Project主要还是用来做UI自动化,其实UI层自动化从很早之前的商业方案到现在的开源方案,算是自动化测试领域发展比较久的一个方向,但是基于UI层的自动化测试框架要复杂很多,从平台种类上来讲,有Windows Client,Linux图形化Client,Web UI,Android UI,iOS UI,还有现在比较新的小程序等,这些都是对于UI层自动化框架的挑战。

02、主流框架

01、Selenium

首先介绍的是历史悠久的Selenium,Selenium当前使用最广的是WebDriver组件,WebDriver是一款开源的Web应用自动化测试框架,可以通过操作浏览器原生API来完成对浏览器的操作。

  • Selenium支持Windows,OSX以及Linux 图形化操作系统。
  • Selenium也支持当前主流浏览器,Chrome,FireFox,Safari,Windows Edge,IE,Opera,还支持一些无界面浏览器,比如Chrome headless,Phantomjs等。
  • Selenium也是跨语言的框架,可以支持Python、Java、Ruby、C#等各种语言。

Selenium运行原理:

通过上面的介绍,我们可以看出来,Selenium主要还是基于浏览器的,那接下来,我们来看一下常用的移动端框架Appium。

02、Appium

Appium是一款基于移动端的开源的自动化测试工具,支持IOS、Android、Windows和Mac应用。

  • Appium支持Windows,OSX以及Linux 图形化操作系统。
  • Appium也是可以支持多种语言的,采用了C/S的设计模式,扩展了WebDriver协议,因此Client用Python、Java、Js/Nodejs、Ruby、OC、C#等各种语言来实现。

Appium原理介绍:

Appium的核心是一个遵守REST设计风格的Web服务器,他会用来接受客户端的连接和指令。由于统一的接口设计,客户端便可以用多种语言来实现,从而用自己喜欢的语言来实现测试用例。

服务端收到测试指令后会发送给设备,在设备层则使用了设备商提供的原生测试框架,比如IOS的XCUITest Driver和UIAutomation Driver, 安卓的UIAutomator和UIAutomator2等等。

Appium Android 原理图:

Appium iOS原理图:

03、Airtest Project

Airtest Project是一款由网易研发并开源的自动化测试框架,相比于其他的自动化测试框架,主要有如下两个优势:

大幅度降低自动化脚本的编写和维护成本,Airtest Project希望能够通过一种所见即所得的方式完成脚本的录制,即使测试人员不会编程不懂脚本,也可以通过正常用户的点击拖拽等操作,自动完成脚本的录制,从而大幅度降低企业和项目的自动化维护成本。

解决游戏测试的痛点,Airtest Project希望能够通过对游戏的不同引擎做支持,成为一个真正意义上的跨引擎跨平台的自动化测试平台。

框架图:

可以看到,底层的主要测试框架主要是Airtest和Poco,二者的区别在于:

  • Airtest:基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。
  • Poco:基于UI控件搜索的自动化测试框架,其核心优势是除了对Android、IOS之外,对游戏也是支持的,同时也支持微信小程序、微信小游戏和H5应用。

整套框架配备了非常实用的IDE,通过AirtestIDE, 可以轻松的完成脚本的录制、测试任务的执行以及最后测试报告的生成。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176228.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在NISQ小型计算机上执行大型并行量子计算的可能性

简介 Steve White提出了密度矩阵重整化群(DMRG)的基本思想,即纠缠是一种有价值的资源,可以用来精确或近似地描述大量子系统。后来,这一思想被理解为优化矩阵积状态(MPS)的算法,支持…

喜报!CACTER邮件安全网关荣获2023鲲鹏应用创新大赛广东赛区三等奖

近期,2023鲲鹏应用创新大赛广东赛区暨广东省信息技术应用创新产业联盟创新大赛圆满落幕,Coremail凭借“基于鲲鹏CPU的邮件网关一体机解决方案”,荣获“金融行业方向”三等奖。 ​ 鲲鹏凌粤 展翅湾区 本届大赛广东区域赛以“鲲鹏凌粤 展翅湾…

OpenCV—自动驾驶实时道路车道检测(完整代码)

自动驾驶汽车是人工智能领域最具颠覆性的创新之一。在深度学习算法的推动下,它们不断推动我们的社会向前发展,并在移动领域创造新的机遇。自动驾驶汽车可以去传统汽车可以去的任何地方,并且可以完成经验丰富的人类驾驶员所做的一切。但正确地训练它是非常重要的。自动驾驶汽…

Git工作原理和常见问题处理方案

博客定位Git工作区域工作区域划分暂存区设计目的 Git基本操作核心操作初始化和配置指令 HEAD指针Git版本回滚指令介绍reset模式reset hard使用场景reset soft使用场景reset mixed使用场景reset使用注意事项checkout使用场景 Git分支管理什么是分支分支应用场景分支相关指令被合…

10 MIT线性代数-四个基本子空间 four fundamental subspaces

1. 四个子空间 Four subspaces (mxn) 列空间 Column space C(A) in 零空间Nullspace N(A) in 行空间Row space all combs of rows all combs of columns of AT C(AT) in 左零空间Left nullspace Nullspace of AT N(AT) left nullspace of A in 2. 基和维数 Basis&…

nodejs+vue黄花岗社区核酸检测站-计算机毕业设计python-django-php

对黄花岗社区核酸检测站系统进行大力的研究,主要是因为黄花岗社区核酸检测站系统对于社区的推进有着十分重要的作用, 对于社区的管理来说,黄花岗社区核酸检测站系统是十分有效的一个途径,也正是因为这样的特殊性使得在对社区进行管…

[SpringCloud] Feign 与 Gateway 简介

目录 一、Feign 简介 1、RestTemplate 远程调用中存在的问题 2、定义和使用 Feign 客户端 3、Feign 自定义配置 4、Feign 性能优化 5、Feign 最佳实践 6、Feign 使用问题汇总 二、Gateway 网关简介 1、搭建网关服务 2、路由断言工厂 3、路由的过滤器配置 4、全局过…

钢琴培训答题服务预约小程序的效果怎样

很多家长都会从小培养孩子的兴趣,钢琴便是其中热度较高的一种,而各城市也不乏线下教育培训机构,除了青少年也有成年人参加培训,市场教育高需求下,需要商家不断拓展客户和转化。 那么通过【雨科】平台制作钢琴培训服务…

协程框架nty_co

一、为什么要有协程? 以DNS请求为例子,客户端向服务器发送域名,服务器回复该域名对应得IP地址。 我们想要以同步的编程方式获得异步的性能!!! 在Linux下,常使用IO多路复用器epoll来管理客户端…

英语——歌曲篇——500 Miles(离家五百里)

乡村音乐(country music)《500 Miles(离家五百里)》以一种怀乡、寻根 的意识,用思念留住时光还有一点哲理的味道,乡村音乐多年以来都不曾淡出大家的视野,确实有值得留恋的情怀。 500 Miles [The Brothers Four离家五…

用前端框架Bootstrap和Django实现用户注册页面

01-新建一个名为“mall_backend”的Project 命令如下: CD E:\Python_project\P_001\myshop-test E: django-admin startproject mall_backend02-新建应用并注册应用 执行下面条命令依次创建需要的应用: CD E:\Python_project\P_001\myshop-test\mall…

【计算机视觉】相机

文章目录 一、原始的相机:针孔相机(Pinhole Camera)二、针孔相机的数学模型三、真实相机四、透镜的缺陷 我的《计算机视觉》系列参考UC Berkeley的CS180课程,PPT可以在课程主页看到。 成像原理 一、原始的相机:针孔相机…

信息安全与网络安全的关系

前言 说说信息安全与网络安全的关系 如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉【入门&进阶全套282G学习资源包免费分享!】 一、包含和被包含的关系 信息安全包括网络安全,信息安全还包括操作系统安全&…

云计算的基本概念

目录 云计算基本概念 什么是云计算 云计算的优势(关键特征) 云计算发展历程 云计算发展阶段 云计算的三种服务模式 云计算的四类部署模式 云计算的应用 云计算基本概念 什么是云计算 云计算的基本概念 云计算(Cloud Computing&…

J2EE项目部署与发布(Linux版本)

目录 一.jdk&tomcat安装 1.jdk的安装 1.2解压对应的安装包 1.3配置环境变量 2.tomcat的安装 二.mysql的安装 三.后端接口部署 后端部署 导入war包 修改端口 开启访问 一.jdk&tomcat安装 1.jdk的安装 登录VMware Workstation Pro 然后连接MobaXterm 将 jd…

BI零售数据分析,告别拖延症,及时掌握一线信息

在日常的零售数据分析中,经常会因为数据量太大,分析指标太多且计算组合多变而导致数据分析报表难产,零售运营决策被迫拖延症。随着BI数据可视化分析技术的发展,智能化、可视化、自助分析的BI数据分析逐渐成熟,形成一套…

精品站长网交易系统源码/虚拟交易网站程序源码/虚拟交易平台带店铺处罚商品处罚

精品站长网交易系统源码,虚拟交易网站程序源码,虚拟交易平台带店铺处罚商品处罚。带申诉功能, 带提现通知功能, 带熊掌号推送功能, 带站内信息功能。 下载地址:https://bbs.csdn.net/topics/617494651

C++学习笔记之四(标准库、标准模板库、vector类)

C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器2.1.4、vector与算法 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray),它定义了十个大类…

如何使用IP归属地查询API加强网络安全

引言 在当今数字化时代,网络安全对于个人和组织来说至关重要。恶意网络活动的威胁不断增加,因此采取有效的措施来加强网络安全至关重要。其中之一是利用IP归属地查询API。这个工具可以为您的网络安全策略提供宝贵的信息,帮助您更好地保护自己…

huggingface离线模式及默认保存路径

T5Tokenizer.from_pretrained()函数会在线下载huggingface上的模型,并自动保存在C盘的.cache路径下: C:\Users\xxxxx\.cache\huggingface\hub\models--google--t5-v1_1-base # 这里xxxxx代表自己电脑用户名huggingface离线下载 以google/t5-v1_1-base为…