手把手教你测试环境的搭建

2017-11-20  王贤 

测试环境的搭建

基于现有的互联网开发技术,笔者所在部门使用Java 作为主要开发语言,Tomcat作为Web容器,Nginx 作为反向代理服务。测试环境搭建包括这些基础软件的安装和被测应用软件的构建、部署。

我们通常所说的测试环境包括网络、服务器等基础硬件环境和运行之上的软件环境(应用软件、数据库等)。笔者所在部门,硬件、网络环境是由运维部门提供维护。这样省去了很多维护工作,也便于管理。目前京东已经从虚拟机过渡到Docker容器。


笔者在安装应用时,每加入一个应用会定义一个Nginx 配置文件,用include 关键字将应用配置导入Nginx 配置。代码 示例4.4.1 为Nginx 示例文件。

代码示例4.4.1


手把手教你测试环境的搭建

  在domain 目录下建立应用配置文件,如代码示例4.4.2 所示。

代码示例4.4.2


手把手教你测试环境的搭建

这样的结构方便管理,当应用安装后只需运行nginx –s reload 即可在不影响其他应用访问的情况下加载新的应用。

Tomcat 只需要安装一套。如代码示例4.4.3 所示为配置文件Server.xml 示例。

   代码示例4.4.3


手把手教你测试环境的搭建

对应的应用配置文件conf/Catalina/localhost/ROOT.xml 示例,如代码4.4.4 所示。

代码示例4.4.4


手把手教你测试环境的搭建

软件只需要解压到/export/App 对应应用目录中。

我们在启动脚本中使用相同的tomcat 软件,如代码示例4.4.5 所示为start.sh 启动脚本示例。

代码示例4.4.5


手把手教你测试环境的搭建

 4.5 测试环境自动化运维  线上生产环境有专业的运维管理,一般不允许直接登录服务器操作,版本发布有严格的流程规范。测试环境属于研发测试活动中的基础设施,出于成本考虑,服务器较少,一台服务器上可能会部署多个应用,使用方式多样化、发布频繁,因此不易于管理。测试环境的准备以及使用中遇到问题的解决占用了测试活动的很多时间,影响测试效率。一般最基础的方式是使用手工部署:手工打包、上传、管理服务,串行操作很费时间。这些操作完全可以用自动化的方式解决。 

4.5.1 测试环境管理平台

在手工维护和使用一些自动化工具(如Jenkins)管理服务器和测试环境时,会发现一些问题。如果服务器、应用很多,会不方便统一管理。一般每个业务线、每个应用应该有专属的测试服务器。如果应用任意部署,则会因为应用间相互依赖,导致跨多个应用的业务流不能串联,延误测试进度。在开发工程师提测后,需要知道提测代码对应的分支、版本。部署后需要知道服务器上部署的应用信息,以方便核对测试代码是否和提测版本一致。测试工程师需要知道:(1)有哪些测试服务器可以使用;(2)服务器的当前状态;(3)服务器资源不足时是否能提前通知;(4)测试服务器上部署了哪些应用,应用的运行状态。  

我们结合现有技术,设计了一套完整的测试环境管理平台解决方案。测试环境管理平台主要包括测试服务器的分配,服务器内存、硬盘空间等资源监控及预警、应用的编译打包、一键部署,定时自动部署、部署验证及回滚功能。系统整体架构如图4.5.1 所示。  

它主要包括系统管理模块、远程控制模块、应用编译打包模块、应用包管理模块、定时任务管理模块。处理流程包括手工一键部署流程(图4.5.2)和定时自动部署流程(图4.5.3)。


手把手教你测试环境的搭建

手把手教你测试环境的搭建


  手工一键部署流程:用户设置部署应用的分支、版本号、构建参数触发构建,系统根据软件包特征查询之前有没有构建过,如果构建过,系统则通过远程控制模块通知服务下载软件包,直接部署,跳过编译构建流程。如果没有构建过,系统则通知编译中心打包构建,构建后将软件包上传到云存储中,然后通知服务器下载软件包并部署。  

用户在定时任务管理模块配置定时部署任务(站点、服务器、构建参数、触发时间)。任务到达触发时间后自动触发,通知软件包构建模块执行构建任务。软件包构建模块返回构建任务编号,部署控制模块通过构建任务编号查询构建状态。软件包构建模块构建完成后将软件包提交给软件包管理模块。然后部署控制模块进行部署操作。部署完成后,部署控制模块通知测试模块进行BVT(Build Velification Test,冒烟测试)测试。如果测试通过,则部署任务完成;如果测试失败则通知回滚模块进行软件包回滚并再次执行BVT 测试,记录测试结果,回滚完成。


手把手教你测试环境的搭建


  1. 想学习软件测试这一门技术, 对软件测试感兴趣,想从事软件测试工作的。

  2. 工作0-2年,感觉自己技术不行,想提升的

  3. 没有工作经验,但基础非常扎实,想提升自己技术的。

  4. 还有就是想一起交流学习的。

  5. 工作遇到瓶颈了,想进阶突破自己的。

  6. 小号一律不给过,谢谢。

    学习交流群:672899761

826°/8262 人阅读/0 条评论 发表评论

登录 后发表评论
王贤
访客 1216
王贤 的其他博文 更多