在前面的两篇文章中,我和你分享了测试基础架构的设计以及演进之路,其中涉及到了统一测试执行平台、Selenium Grid 和 Jenkins 等一系列的概念。
在掌握了这些基础内容之后,今天我就和你一起看看大型全球化电商的测试基础架构又是如何设计的。这其中除了我之前介绍过的概念以外,还会引入一些新的服务和理念,我都会和你一一道来。
因为我们已经掌握了测试基础架构设计的基础知识,所以今天我会采用一种不同于以往由浅入深的方式,直接给出大型全球化电商网站的全局测试基础架构的最佳实践,然后再依次解释各个模块的主要功能以及实现基本原理。
其实,大型全球化电商网站全局测试基础架构的设计思路,可以总结为“测试服务化”。也就是说,测试过程中需要用的任何功能都通过服务的形式提供,每类服务完成一类特定功能,这些服务可以采用最适合自己的技术栈,独立开发,独立部署。而至于到底需要哪些测试服务,则是在理解了测试基础架构的内涵后再高度抽象后得到的。从本质上来看,这种设计思想其实和微服务不谋而合。
根据在大型全球化电商网站工作的实际经验,我把一个理想中的测试基础架构概括为了一张图(如图 1 所示)。
图 1 大型全球化电商网站的全局测试基础架构设计
这个理想的测试基础架构,包括了 6 种不同的测试服务,分别是:统一测试执行服务、统一测试数据服务、全局测试配置服务、测试报告服务、测试执行环境准备服务,以及被测系统部署服务。
接下来,我们一起看看这 6 大测试服务,具体是什么,以及如何实现。
统一测试执行服务
从本质上看,统一测试执行服务,其实和统一测试执行平台(你可以再回顾一下第 41 篇文章《从小工到专家:聊聊测试执行环境的架构设计(下)》)是一个概念。只不过,统一测试执行服务,强调的是服务,也就是强调测试执行的发起是通过 Restful API 调用完成的。
总结来说,以 Restful API 的形式对外提供测试执行服务的方式,兼具了测试版本管理、Jenkins 测试 Job 管理,以及测试执行结果管理的能力。
统一测试执行服务的主要原理是,通过 Spring Boot 框架提供 Restful API,内部实现是通过调度 Jenkins Job 具体发起测试。如果你对此还有疑惑,请参考第 40 篇文章《从小工到专家:聊聊测试执行环境的架构设计(上)》。</