互联网测试环境解决方案

来源:互联网 发布:广联达软件购买 编辑:程序博客网 时间:2024/06/05 03:46

现状

国内的大多数互联网企业由于前期业务发展迅速,业务驱动研发,使得网站架构更多的是为满足业务需求而做的业务开发,重复代码越来越多,代码所占空间越来越大,运行所需要的资源也越来越多,很难在一台机器将网站所有功能进行部署。这样,就要求有一套可行的测试环境解决方案。


如何搭建和维护一套测试环境

测试环境包含哪些方面

web application

web应用程序是网站的基本元素,一个互联网公司会有大大小小的应用程序上百个,很难通过人工的方式记录放置在测试环境上的版本是哪个,必须要有系统进行管理。


resource application

resource站点尽可能集中,以便生产上做cdn处理;


database

数据库分为两部分,一部分是scheme,另一部分是基础数据,有一些数据是测试的基础,而不是业务数据,这些数据需要先从生产环境导入。


common framework

如soa等,基础框架除了程序的版本正确以外,数据也要有版本记录,否则无法快速复制。哪些表是基础数据,哪些是动态变化的都需要理清楚。


web application configuration

一般来说,应用程序在测试环境、生产环境的配置文件是不一样的,需要通过构建系统快速生成不同的配置放置到不同环境。

由于测试、生产的值是不一样的,这些值需要统一放在某个地方,构建系统去一个集中的地方获取生成适合环境的配置。


工具辅助

一般来说,一套测试环境搭建是比较容易的,大家把各自的模块都模拟生产进行搭建,最后再进行联调就可以完成。由于各个web application之间相互影响,一个模块的更新可能导致某个模块甚至多个模块无法正常工作。

我们要求每个模块上传到测试环境,至少保证自己的模块是正常的,如果不正常,还原到上一个版本,不要影响到其它人的测试工作。这种方式需要靠大家的自觉和充分的自动化测试。

当然,测试环境管理员需要提供测试环境管理工具,功能如下:

1、最近发生了哪些变化,与生产相比,哪些版本旧了;

2、哪些分支已经上线了,可以使用生产进行覆盖;

3、增加了哪些新模块;


如何搭建多套测试环境

一套测试环境是远远不够的,经常会有被覆盖的情况,原因很简单,一个业务模块就有好几个分支在开发。如何搭建呢,有人会说,这不是很简单吗?复制过来就可以了。其实要做到重复搭建测试环境并不只是简单的复制,有许多与环境相关的变量存在,需要特别去修正。

首先搭建环境的自动化脚本或程序需要存在。

此次web application之间尽量分成不同的模块,模块之间可以通过mock来进行测试,而不需要依赖其它模块。

最后,配置管理保证web application版本的一致性和完整性。


测试环境层次结构

功能测试环境 (分模块,通过mock模拟)--->  系统测试环境(集成测试)----->uat测试环境 (用户测试)----->staging测试环境(真实的生产环境的mirror)

功能测试环境

用于单个web application或者某个framework组件的单独测试,如果需要其它模块提供数据,可以自行做mock


系统测试环境

一个小型的全站测试,测试人员发现系统间的bug


uat测试环境

需求提出方的测试环境,除了功能上的正确,还需要满足,是否与最原始的需求一致。


stage环境

mirror生产环境,stage环境和生产环境是互备的,引导一部分用户使用新的版本,运行正常以后,将生产用户直接切换到此环境。