来源:http://www.51testing.com
大型全球化电商的测试基础架构设计
大型全球化电商网站全局测试基础架构的设计思路,可以总结为“测试服务化”。也就是说,测试过程中需要用的任何功能都通过服务的形式提供,每类服务完成一类特定功能,这些服务可以采用最适合自己的技术栈,独立开发,独立部署。
统一测试执行服务
测试执行的发起是通过RestfulAPI调用完成。
统一测试执行服务的主要原理是,通过SpringBoot框架提供RestfulAPI,内部实现是通过调度JenkinsJob具体发起测试。
统一测试数据服务
通过RestfulAPI调用统一测试数据服务,然后由它在被测系统中实际创建或者搜索符合要求的测试数据。
测试执行环境准备服务
测试执行环境准备服务的使用方式,一般有两种:
一种是,由统一测试执行服务根据测试负载情况,主动调用测试执行环境准备服务来完成测试执行机的准备,比如启动并挂载更多的Node到SeleniumGrid中;
另一种是,测试执行环境准备服务不直接和统一测试执行服务打交道,而是由它自己根据测试负载来动态计算测试集群的规模,并完成测试执行集群的扩容与收缩。
被测系统部署服务
用来安装部署被测系统和软件。
其实现原理是,调用DevOps团队的软件安装和部署脚本。
测试报告服务
测试报告服务的实现中引入了一个NoSQL数据库,用于存储结构各异的测试报告元数据。
全局测试配置服务
把配置值从代码中抽离出去放到单独的配置文件中,然后代码通过读取配置文件的方式来动态获取配置值。
大型全球化电商网站测试基础架构的使用实例
首先,CI/CD流水线脚本会以异步或者同步的方式调用被测系统部署服务,安装部署被测软件的正确版本。
被测系统部署完成后,CI/CD脚本就会调用统一测试执行服务。统一测试执行服务会根据之前部署的被测软件版本选择对应的测试用例版本,然后从代码仓库中下载测试用例的Jar包。
接下来,统一测试执行服务会将测试用例的数量、浏览器的要求,以及需要执行完成的时间作为参数,调用测试执行环境准备服务。
统一测试执行服务通常以同步的方式调用测试执行环境准备服务。
测试执行环境准备好之后,统一测试执行服务就会通过JenkinsJob发起测试的执行。测试用例执行过程中,会依赖统一测试数据服务来准备测试需要用到的数据,并通过全局测试配置服务获取测试相关的配置与参数。
在测试执行结束后,还会自动将测试报告以及测试报告的元数据发送给测试报告服务进行统一管理。