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

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

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

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

组件构成

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层自动化框架的挑战。

主流框架

01、Selenium

扫描二维码关注公众号,回复: 15895783 查看本文章

首先介绍的是历史悠久的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原理图:

Airtest Project

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

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

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

框架图:

在这里插入图片描述
可以看到,底层的主要测试框架主要是Airtest和Poco,二者的区别在于:

  • Airtest:基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。

  • Poco:基于UI控件搜索的自动化测试框架,其核心优势是除了对Android、IOS之外,对游戏也是支持的,同时也支持微信小程序、微信小游戏和H5应用。

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


最后很多小伙伴都有学习自动化测试的想法,这里在我在B站分享了一份自动化测试的视频教程,小伙伴们可以自行观看:

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖…

公众号粉丝福利

  • 软件测试全套资源免费领取

  • 软件测试面试刷题小程序免费使用

  • 专属于测试人的GPT免费使用

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_54696666/article/details/131947462