前言从一些观点来看,自动化测试工具能够较好的带动周边市场的快速发展,是核心的动力。
测试环境是qa开展测试工作的前置条件。稳定和可控的测试环境,可以使测试人员在执行测试用例时无需花费额外的时间去维护。有些运维或者研发部门会帮忙准备好测试环境,但是qa如果一味依赖其他部门,会局限测试工作的开展。
一、什么是测试环境
测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。
硬件:指测试必需的服务器、客户端、网络连接等辅助设备。
软件:指测试软件运行时的操作系统、数据库及其他应用软件。
网络:指被测软件运行时的网络系统、网络结构以及其他网络设备构成的环境等。
数据准备:一般指测试数据的准备。测试数据会在测试用例设计的阶段设计好,然后软件运行的时候,作为软件输入去验证软件功能。如果是少量、正常的测试数据,可以直接通过手动方式模拟出来,如果是大量的用户数据的模拟,可以借助测试工具来构建。
测试工具:工具是辅助测试的好帮手,针对将要做的测试类型,可选择合适的工具让我们的测试事半功倍。比如接口测试,可以选择jmeter或者postman;抓包工具,可以选择fiddler,wireshark等。
二、搭建测试环境的原则
1真实
要求测试人员尽量模拟用户的真实使用环境。我们应该选用合适的操作系统和软件平台,了解符合测试软件运行的最低要求及用户使用的硬件配置,考虑到与其他软件共存时,是否能正常运行等。
2无毒
若搭建的测试环境感染病毒,会导致测试软件经常出现莫名的崩溃,运行不起来等现象,导致测试中断。使用正版杀毒软件防止病毒感染测试环境,保证无毒环境。
3独立
测试过程中要确保我们的测试环境独立,避免测试环境被占用,影响测试进度及测试结果。有时开发人员为确定问题会使用我们的测试环境,这样会打乱我们的测试活动。为避免这种情况,测试环境与开发环境应相互独立,开发人员根据缺陷表单,在开发环境中复现和定位问题。
4可复用
当我们刚搭建好测试环境,安装测试软件之前及测试过程中,对操作系统及测试环境进行备份是必要的。在当测试环境遭到破坏时,可以恢复测试环境,避免测试数据丢失,出现不可预知的问题。
三、如何搭建测试环境
1认识lnmt架构
这里主要介绍测试环境服务端的部署。不同的服务端部署都不一样。互联网比较典型的部署框架lnmt(linux+nginx+mysql+tomcat)如下图:
浏览器和app端是通过http协议跟服务器进行交互的。
nginx,有些也用apache。这是常用的http服务器和反向代理服务器。nginx是用来提供静态资源的服务,nginx接收到来自浏览器的请求以后,判断这个请求是否是静态资源(以js、css、html、png等结尾的静态文件),如果是,则nginx直接返回相应文件;如果不是静态资源,是动态请求,比如,请求某一个日志的内容,则nginx会把请求转发给tomcat来处理。
tomcat,是处理动态的http请求,调用各种其他服务,完成相应的任务,并返回http响应给nginx。如果涉及到写日志、读日志等数据相关的操作,就需要对数据库进行读写。另外,由于这些动态请求也会依赖一些第三方服务,比如说要调用支付宝的支付服务,那么它就会再发起一个http请求到支付宝的对外服务器。它处理完整个逻辑之后,就会把相应的内容返回给nginx,然后由nginx返回给浏览器。
mysql数据库,将各种数据有序的管理起来,并对其他应用提供统一的接口和服务。
2lnmt架构部署
此处主要介绍搭建环境的思路,更详细的配置步骤不再赘述。
1)申请虚拟机器
申请两台虚拟机a和b,机器a作为nginx服务器+mysql服务器;机器b作为2台tomcat服务器。
2)在机器a上安装和配置nginx
下载并安装nginx
配置环境变量
启动nginx
3在机器a上安装mysql
下载安装包并解压
添加环境变量
初始化数据库
启动mysql
4)在机器b上部署两台tomcat
关闭防火墙和selinux
安装jdk环境
下载tomcat并解压两次,目录不同
两台tomcat建立软链接
修改其中一台tomcat的配置文件serverxml,避免端口冲突。serverxml配置的是地址、端口、最大连接数、编译好的应用程序目录等信息
启动tomcat服务
验证部署成功,即浏览器输入ip地址+端口号能成功访问
5)配置nginx
配置负载均衡和两个tomcat的反向代理
检查语法并加载nginx
验证配置成功
总结
对于测试人员来说,对于这一整个机制需要理解,比如,各个工具的作用是什么,各个配置文件的意义是什么,各块的配置是怎么连起来的。
在搭建测试环境的过程中要多跟开发、运维沟通。测试环境的搭建和维护处在重要的位置,它的好坏直接影响测试结果的真实性和准确性。维护测试环境需要大量的精力,不是一个人能完成的,需要我们大家积极配合。