你好,我是茹炳晟,今天我和你分享的主题是“从小工到专家:聊聊测试执行环境的架构设计(下)”。
在上一篇文章中,我介绍了测试基础架构的概念,以及早期的和经典的两种测试基础架构。在文章的最后,我提到经典的测试基础架构中采用的 Selenium Grid 方案,在测试用例的数量持续增加的情况下,会带来集群扩容、Jenkins Job 臃肿不堪等诸多问题,因此我们考虑将 Selenium Grid 迁移到 Docker,并且提供便于 Jenkins Job 管理的统一测试执行平台。
所以,今天的这篇文章,我就会围绕这些瓶颈以及对应的解决方案来展开。
基于 Docker 实现的 Selenium Grid 测试基础架构
随着测试基础架构的广泛使用,以及大量的浏览器兼容性测试的需求,Selenium Grid 中 Node 的数量会变得越来越大,也就是说我们需要维护的 Selenium Node 会越来越多。
在 Node 数量只有几十台的时候,通过人工的方式去升级 WebDriver、更新杀毒软件、升级浏览器版本,可能还不是什么大问题。但是,当需要维护的 Node 数量达到几百台甚至几千台的时候,这些 Node 的维护工作量就会直线上升。虽然,你可以通过传统的运维脚本管理这些 Node,但维护的成本依然居高不下。