8年经验分享 —— 带你从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原理图:

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

03、Airtest Project

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

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

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

框架图:

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

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

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

最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值