在上一篇文章中,我介绍了 Selenium Grid 的基础知识,以及如何搭建 Selenium Grid。现在,你已经非常清楚,Selenium Grid 的作用主要是承担了测试执行机器的角色,被用来执行实际的测试工作。但是,实际工程中的测试执行环境往往更复杂,而测试执行机器也只是其中的一个重要部分。
因此,我们还需要控制发起测试的 Jenkins,并管理测试用例执行和结果显示的系统。同时,为了更方便地与 CI/CD 流水线集成,我们还希望不同类型的测试发起过程可以有统一的接口。
那么,从今天开始的两篇文章,我将由浅入深地和你聊聊测试执行环境中的基本概念,以及架构设计的思路。
什么是测试执行环境?
测试执行环境的定义有广义和狭义之分:
- 狭义的测试执行环境,单单指测试执行的机器或者集群。比如,我在上一篇文章《从小作坊到工厂:什么是 Selenium Grid?如何搭建 Selenium Grid?》中介绍的 Selenium Grid 就是一个最经典的测试执行集群环境。
- 广义的测试执行环境,除了包含具体执行测试的测试执行机以外,还包括测试执行的机器或者集群的创建与维护、测试执行集群的容量规划、测试发起的控制、测试用例的组织以及测试用例的版本控制等等。
因此,广义的测试执行环境也被称为测试基础架构。而,我在测试基础架构这个系列里,要和你讨论的是广义上的测试执行环境。也就是说,我会和你重点讨论测试基础架构的概念和设计。
如果你是在一些小型的软件公司做测试工程师的话,可能并没有听说过“测试基础架构”这个概念,或者也只是停留在对其的一知半解上。但,实际情况是,无论小型的软件公司还是中大型的软件公司都存在测试基础架构。
只是,在小型的软件公司,由于自动化测试的执行量相对较小,测试形式也相对单一,所以测试执行架构非常简单,可能只需要几台固定的专门用于测试执行的机器就可以了。那么,此时测试基础架构的表现形式就是测试执行环境。
而对于中大型