欢迎光临散文网 会员登陆 & 注册

13带你看一个企业级的自动化测试解决方案

2023-08-17 14:23 作者:Airtest酱  | 我要投稿

同学们好,我是网易AirtestProject的团队成员晓娟,欢迎大家来到我们的视频教程专栏《14天Airtest自动化测试小白课程》。

不知不觉,我们的视频课程也接近尾声啦。在前面的课程里,我们详细跟大家介绍了Airtest和poco测试框架以及AirtestIDE的使用。

据统计,目前已经有上千家企业和数万名测试或者开发人员在使用我们开源的测试框架进行UI层面的自动化测试工作,但是,如果仅仅是使用测试框架和IDE进行一些轻量级的、小规模的自动化测试,其实是不能满足一整个企业的自动化测试需求的。企业在自动化测试的探索和实践上,还会考虑更多、更复杂的问题。

比如:如何开展大规模的自动化测试实践;如何解决持续集成的问题;如何解决企业的设备资源、测试资源、应用资源等的统一管理问题。

使用我们开源框架的外部企业,也会在这个基础上去做更多的测试平台开发或者是持续集成的搭建。

网易也是如此,所以今天我们就给大家介绍下网易内部都在使用的一套自动化测试解决方案:私有云自动化测试解决方案。

先来看下我们整个方案的一个总览:

这是一套软硬件一体的自动化测试解决方案,最底层呢,就是我们测试必备的一些设备资源,比如真机、云手机等等;

往上一层呢,就是用来管理、维护我们最底层的这些设备资源的管理系统,叫做DeviceKeeper。有了这个设备管理系统,我们不仅可以在线管理、维护、监控这些真机设备;还可以将这些真机资源通过远程的方式提供给更上一层的一些自动化测试框架,让这些自动化测试框架可以连接到我们的真机设备,来进行脚本编写、调试等工作。

提到脚本编写、调试,那肯定少不了一款好用的编辑器,之前我们也有学习过我们官网上可以免费下载的AirtestIDE,但是这套方案里面的AirtestIDE呢,功能做了更多升级,叫做企业版IDE,等会呢我们也会详细介绍下。

最后呢,就是这个最上层的云测试平台了,解决了设备资源和脚本编写的问题之后,就要考虑脚本管理、用例管理和大规模的任务调度这些问题了;Airlab云测试平台就是为了解决这些问题而开发出来的。

大致的了解了我们的私有云方案之后,我们接下来将会分成5部分的内容,更加深入地带大家来看一下这个方案以及它的实际应用。

设备集群--工业级机柜和便携式手提机柜

先来看下我们的第一部分内容,设备集群的搭建。我们为什么要搭建设备集群呢?

其实,在公司内部探索大规模自动化实践的时候,我们就发现,随着测试设备逐渐增多,设备的借用、归还,设备的日常维护都非常耗费人力和时间,设备的利用率就会很低;并且我们还发现,如何给各种类型的测试任务提供稳定的设备资源也是急需解决的一个问题。

因此,我们就在考虑,能不能有一种科学的管理方案,既可以让维护的同事能够去批量管理、维护这些设备;又可以让测试同事迅速并且灵活的获取到指定的设备或者是大量的设备来进行回归性测试或者兼容性测试。

基于以上痛点,我们设计了一套工业级的手机集群机柜,机柜上面部署好了我们的控制节点,然后将我们的测试设备统一上架到这个机柜上面之后,管理人员就可以通过机柜配套的管理平台,在线监控设备的状态,并且对设备实施批量的维护和管理,从而大大提高了设备维护的效率。

举个例子,1个设备管理员,对100台设备进行开关机操作,如果是一台台手动去处理的话,可能大半天的时间就过去了。但是对于机柜上面的100台设备来说,不过就是2个简单的网页操作,批量选取100台设备,点击重启操作,几秒钟的操作,然后管理人员就可以坐等设备自己关机重启啦~

而测试人员需要使用设备的时候呢,也无需进行线下的借用和归还,直接远程就可以访问机柜上面的任意一台或者多台真机,对它进行调试,或者运行脚本等工作。用完之后断开连接即可。

另外,随机机柜版本的迭代,现如今这个机柜已经持有了多项专利,并且机柜的设备承载量也支持灵活定制,已有8*4、8*10、9*10等不同规格。良好的通风设计和散热装置,也可实现设备的有效散热,以保障持续测试时的设备稳定性。每层设备抽屉均可以抽拉并支持独立工作,方便设备的上架与维护;另外机柜还内置了工业级的网络环境,让批量设备同时运行任务的时候也有流畅的网络。

这里我们可以来看一下调用整个机柜的设备跑一个测试任务的视频:

另外,设备集群的形态并不仅仅是局限于上面这种中大型的机柜,我们还设计了便携式的手提机柜,可以放置10台设备,真正实现,提到哪里,就测到哪里:

这种规模的机柜,常用于一些效果演示场景;或者是一些特殊场地的测试,比如提到机场去,测试在机场网络下面,游戏的一个延迟情况等等。

虽然说,上面我们介绍的机柜管理方案已经大大地解决了我们非常多的问题,但是在我们的长期使用过程中,又发现了另外一个比较严重的问题,就是我们机柜上面的设备长期连着USB线,设备就会过充,进而导致设备涨壳、电池老化等设备故障问题频发。

针对这个问题,我们又对机柜进行了一次升级,把普通的usb hub,升级成了可智能控电的hub,结合我们的软件智能控电系统,就可以实现机柜设备集群的远程USB插拔维护、锂电池自动化充放电管理,大大减少了电池胀壳和电池老化等问题。

接下来我们来看下智能控电hub的演示视频:

这个hub工作的背后呢,其实是我们都是通过程序来控制的。

至此,我们整个真机集群的内容就介绍完了。总的来说,机柜设计的好坏,关乎到我们批量管理的难易程度,也关乎到真机设备的稳定性和故障率。

设备管理系统--DeviceKeeper

那真机集群搭建好之后呢,我们就需要一个平台,来管理维护这些集群,并且把集群的真机资源提供给各种测试框架去编写脚本或者执行测试任务。

与我们刚才所说的机柜配套的设备管理平台,就叫做DeviceKeeper。我们通过一个演示视频,来看下这个它究竟可以帮我们做些什么?

首先是查看机柜的集群状态,我们可以看到机柜上面有多少设备,设备现在的状态是如何的;还可以把鼠标放到对应的设备上面查看设备详情;另外画面上的手机位置与现实摆放位置是一一对应的,更加方便我们维护与管理。

然后是查看设备的详细信息,可以看到设备的型号、序列号、系统版本等信息,还可以按自己要求筛选指定的设备。

另外DeviceKeeper还提供了云真机功能,相信这个功能大家都非常熟悉了,市面上也有不少的产品。云真机的作用呢,就是可以帮助我们远程调试设备,比如在家办公的时候,我们的测试人员也可以非常便捷地获取到云真机来进行调试和测试任务。

日常维护的功能,就是为了方便机柜或者设备管理员可以在线上,批量维护、管理我们线下的设备资源,可以大大提高设备维护的效率。

监控报警呢,就是查看和设置机柜或者设备的一些异常信息,一旦触发了我们设置好的标准线,就会给对应的管理人员推送警示信息。

使用统计呢,可以帮助我们查看机柜设备的使用情况,方便我们了解设备的利用率,以此去优化我们机柜设备的分配情况。

最后呢,我们还可以在DeviceKeeper上设置各种管理权限,增加系统管理员啊,或者限制只有公司内的部分项目组才可以使用当前机柜的设备等等。

测试框架与企业版IDE

那刚才我们看到的功能,大部分都是方便设备管理员去维护、管理设备的,当然还有个云真机功能,是可以让测试人员去实现远程调试设备。

解决了稳定高效的设备资源问题呢,接下来最重要的事情,就是获取这些设备资源,来进行自动化脚本编写、生成测试报告这些工作了。

首先是测试框架,一方面,它的平台通用性要好一些,需兼容主流的Android、ios原生、各种游戏引擎、小程序和H5等等;另一方面,它的上手门槛也要低一些,才可以让公司快速落地这个自动化解决方案。

那我们前些课程里面学习的Airtest和Poco,就是为了满足这些需求的,之前也跟大家详细介绍并使用过了,这里就不再赘述。

更重要的是,我想跟大家聊一聊企业版的AirtestIDE,它最大的特点,是不仅支持连接本地的设备,还支持连接DeviceKeeper上面的远程设备;在此基础上,我们可以在手边没有测试设备的情况下,远程连接DeviceKeeper的设备来进行脚本编写、调试等工作。

另外,企业版IDE支持批量运行功能,不论是连接多台本地设备,还是连接多台DeviceKeeper上面的远程设备,都可以在企业版IDE上进行批量运行任务,接下来呢,我们就用一个视频,来演示下如何获取DeviceKeeper上面的多台设备进行批量运行任务:

这里演示的是利用企业版IDE进行并行式任务,也就是我们常说的兼容性测试;任务运行结束之后,支持在企业版IDE上一键生成聚合的测试报告,在聚合报告上,我们可以查看整个批量任务的整体运行情况,也可以查看具体某一台设备的详细到每个步骤的运行报告。

当然,企业版IDE还支持另外一种运行方式,就是分布式运行,也就是我们常说的回归性测试,这里就不再演示啦。

除此之外呢,企业版IDE还支持使用高清模式来连接我们的设备,该模式下,画面的兼容性、清晰度和流畅度都比较好:

自动化测试平台--Airlab云测试平台

那我们的测试框架和编辑器都讲完啦,回到我们解决方案的概览上,看下这个最上层的自动化测试平台--Airlab云测试平台,可以看到,这个平台包含了用例管理、脚本管理、任务预约、任务调度、云端报告和管理后台等一系列的功能,给我们的持续集成和测试资源管理提供了很好的解决方案。

像脚本管理、用例管理功能呢,可以帮助我们维护与积累项目组内的测试脚本和用例资源,便于测试团队协作;防止出现出现资源丢失或者无法共享的情况;

而其他测试资源,像应用和测试账号的管理功能,则可以是我们的测试流程更加规范和专业;

任务预约与调度功能呢,可以帮助我们实现线上发布定时任务,调度机柜设备资源完成回归、兼容等任务,跑测完成之后,还能自动输出报告;这就可以帮助我们实现持续集成,日常打包完成后,我们可以使用这个平台自动开启测试任务并自动生成测试报告。

最后我们的任务报告,也是聚合的测试报告,它不仅提了供详细的跑测数据,还提供性能数据。

接下来我们可以通过一个简单的演示视频,来看下如何在我们的Airlab云测试平台上开启自动化任务跑测、并且如何跟Jenkins结合,实现CI集成来完成自动化测试:

在刚才的视频演示中,我们可以看到,Airlab云测试平台打通了测试开发的持续集成,测试人员可以自定义任务的各种配置,然后调度机柜上的设备集群灵活开启或者设置预约任务。

运行完毕的任务也会自动生成合并的测试报告,用于查看整个任务的跑测结果。

当然,报告也提供部分性能数据给测试人员查看,系统在自动化测试任务过程中,会自动采集用例脚本运行时的设备性能数据,包括安装时间、启动时间、CPU、内存、帧率、网络流量及电池温度情况等。

除了任务的整体情况之外,我们还可以查看每个用例在单台设备上的详细运行报告,包括用例概况,运行的设备信息,运行过程录屏, 每个执行步骤的结果和截图和错误信息等。

测试人员根据这份可视化的测试报告,可以快速查看测试任务运行结果,定位产品问题。

解决方案的落地应用

那么了解完整套方案包含什么软硬件之后,我们来看下这套私有云方案具体能给我们带来哪些收益:

首先是帮助我们提升产品质量,使用这套方案可以可以7*24h帮我们覆盖测试场景,每次版本发布前,我们都可以进行大规模的自动回归测试,帮助我们及时发现问题,严格把控产品质量,减少线上事故带来的损失。

其次是大幅度节省人力;一些繁复的手工测试,可以借助自动化测试来完成;大量的设备经过机柜的统一管理后,能借助我们的设备管理平台批量管理成百上千台设备,维护时间和人力都将大幅度减少。

然后还有就是提高设备的利用率,测试人员可以非常便捷地获取到机柜上的任意一台或多台测试设备开展测试工作,另外自动的设备调度和预约系统可以让每一台设备得到最充分的利用。借助于智能控电系统,也可以高效维护设备集群、保障设备电池寿命。

最后是可以灵活管理各种测试资源,Airlab云测平台支持对测试资源,如应用包体、测试脚本、测试用例、测试账号等进行集中存储及管理,便于测试资源的留存和积累 。测试人员只需准备测试资源及提交配置,即可启动测试任务,并在大批量设备上进行任务跑测。

那落地实践这块呢,首先就是网易内部的实践,这套自动化测试解决方案已在网易内部落地实践五六年,至今也服务着数十个项目组和大量的APP或者游戏产品。

当然,深度合作的外部企业也有很多,像谷歌、headspin、华为云手机、B站、科大讯飞等等,这里就不再一一举例。

至此,一整套的自动化测试解决方案我们就介绍完毕了。今天的课程到这里也差不多要结束啦,对我们私有云方案感兴趣的同学,可以添加我们官方助手的微信咨询详情:

下节课就是我们小白系列课程的最后一课啦,我们会在下节课对整个小白系列课程做一个内容汇总,那么下期我们不见不散啦~

13带你看一个企业级的自动化测试解决方案的评论 (共 条)

分享到微博请遵守国家法律