前言
相信熟悉我们的小伙伴都知道,我们项目组已经对外开源了一套自动化测试框架(Airtest和Poco),并在我们的官网上提供了一个配套的自动化编辑器AirtestIDE。
项目开源至今,已有数万名开发者和上千家公司在使用我们的自动化测试框架和编辑器。但在内部实践过程中,我们发现仅有底层的测试框架远远不足以满足企业对 大规模自动化测试 的需求,比如, 如何搭建稳定高效的设备集群 、 如何科学地远程管理和调度设备 、 如何管理各种测试资源 和 如何进行持续集成 等,都是一套完整的自动化测试方案需要解决的问题。
针对上述需求,我们项目组自研了手机集群机柜、设备管理系统、airlab云测试平台等产品,搭建了一套一站式的自动化测试解决方案,目前该解决方案不仅服务于网易内部,还服务于数十家外部企业,都取得了非常好的效果。
那么今天,我们将为大家揭开这套自动化测试解决方案的面纱,带大家走进网易大型的自动化测试解决方案。
1.方案介绍
从下述的方案架构图中可以看出,我们整套的解决方案包含了从 设备集群建设 、到 设备集群远程维护管理 、云真机调试 ,再到 自动化测试脚本编辑调试 ,最后到上层的 大批量脚本调度执行 、测试资源管理 等服务:
1)真机集群
搭建设备集群,我们使用工业级的手机集群机柜,该机柜由网易自主设计并且持有多项专利。解决企业测试机统一管理的问题,并为云真机和远程调用提供硬件支持。
机柜的 设备承载量支持灵活定制 ,已有 8*4
、8*8
、10*9
等不同规格。每层设备抽屉均可以抽拉并支持独立工作。
( 8*4
规格的机柜)
(机柜部署效果)
另外我们的机柜拥有良好的通风设计并且内置工业级的网络方案,可以保障企业在进行持续性测试、或批量设备任务时的 设备稳定性 和 网络流畅性 。
2)设备管理平台Devicekeeper
DeviceKeeper是为了解决 企业远程批量管理、维护、监控设备 这些痛点而开发的设备管理平台,与我们的机柜硬件相配套。
在网页中,我们即可查看机柜的集群状态,包含但不限于设备详情、设备状态查询、机柜环境状态查询等,并且网页中的手机位置与真实摆放位置一一对应,非常方便管理人员维护:
另外平台还包含设备 远程维护 功能和 远程监控 的功能,维护人员可以在网页上进行设备的批量开关机、点亮、静音等操作,还可以设置各种需要监控的指标,随时监控设备的内存异常、网络异常、温度异常等,触发则自动给管理员发送警告信息 :
更重要的是,Devicekeeper 支持云真机功能 ,无论是在单位还是在家,企业员工随时随地可以通过云真机访问到机柜上的任何一台空闲设备,然后进行设备调试或者其它测试工作:
3)企业版IDE
企业版IDE不仅拥有免费版IDE的所有功能,可以帮助测试小白快速编写出自动化测试脚本;还支持 一键连接机柜内一台或者多台设备 ,测试人员使用企业版IDE录制完脚本以后,即可直接使用机柜的测试机资源进行自动化脚本运行和调试工作:
另外企业版IDE还支持 小规模的批量运行任务 (分布式和并行式均可)和一键生成 聚合报告 等:
4)Airlab云测平台
随着企业对自动化测试技术的深入探索,又会有一些新的问题出现。 一方面,企业开始不满足于在本地运行自动化测试脚本和查看测试报告,他们更希望在自动化测试框架的基础上,做一些持续集成的工作,比如接口触发任务、网页查看报告反馈等等。
另一方面,企业内越来越多的项目组开始使用自动化测试,这就会导致测试用例、测试脚本和测试数据资源的急剧增多,这些资源分散在各个项目组的各个测试成员的电脑里面,缺乏统一的管理。
所以很多互联网企业在寻求高效的自动化测试方案的同时,也在寻找一个既实现了持续集成,又可以将公司内的测试资源统一管理起来的工具或者说平台。
Airlab云测平台正是为了解决这些痛点而研发出来的。它包含了用例管理、脚本管理、任务预约、任务调度、云端报告、管理后台等一系列功能:
用例脚本管理
应用资源管理
任务预约与设备调度
任务报告查看(脚本运行报告和性能报告)
2.方案收益
1)提升产品质量
先进的自动化测试技术可以7*24h帮您覆盖人力无法覆盖的测试场景,加上每次版本发布前的大规模自动回归测试,可以帮您及时发现问题,严格把控产品质量,减少线上事故带来的损失。
2)大幅度节约人力
一些重复繁杂的工作可以交给自动化来完成,节约测试人力资源。设备经机柜统一管理后,维护人员每天仅需半小时,即可管理几百台甚至上千台设备,另外测试人员也不用频繁借用和归还设备,通过云真机平台和企业版IDE即可一键连接使用,大幅度节省了各种人力资源。
3)设备高效利用
测试人员可以非常便捷地获取到机柜上的任意一台或多台测试设备开展测试工作,另外自动的设备调度和预约系统可以让每一台设备得到最充分的利用。
4)测试资源灵活管理
Airlab云测平台支持对测试资源,如应用包体、测试脚本、测试用例、测试账号、设备资源等进行集中存储及管理,便于测试资源的留存和积累。测试人员只需准备测试资源及提交配置,即可启动测试任务,并在大批量设备上进行任务跑测。另外整个测试过程无需人工干预,任务完成后将自动提供本次测试任务的完整运行报告,帮助测试人员发现产品问题。