什么是测试环境
测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。
硬件:指测试必需的服务器、客户端、网络连接等辅助设备。
软件:指测试软件运行时的操作系统、数据库及其他应用软件。
网络:指被测软件运行时的网络系统、网络结构以及其他网络设备构成的环境等。
数据准备:一般指测试数据的准备。测试数据会在测试用例设计的阶段设计好,然后软件运行的时候,作为软件输入去验证软件功能。如果是少量、正常的测试数据,可以直接通过手动方式模拟出来,如果是大量的用户数据的模拟,可以借助测试工具来构建。
测试工具:工具是辅助测试的好帮手,针对将要做的测试类型,可选择合适的工具让我们的测试事半功倍。比如接口测试,可以选择Jmeter或者postman;抓包工具,可以选择fiddler,wireshark等。
搭建测试环境的原则
真实。尽量模拟用户的真实使用环境。我们应该选用合适的操作系统和软件平台,了解符合测试软件运行的最低要求及用户使用的硬件配置,考虑到与其他软件共存时,是否能正常运行等。
无毒。若搭建的测试环境感染病毒,会导致测试软件经常出现莫名的崩溃,运行不起来等现象,导致测试中断。使用正版杀毒软件防止病毒感染测试环境,保证无毒环境。
独立。测试过程中要确保我们的测试环境独立,避免测试环境被占用,影响测试进度及测试结果。有时开发人员为确定问题会使用我们的测试环境,这样会打乱我们的测试活动。为避免这种情况,测试环境与开发环境应相互独立,开发人员根据缺陷表单,在开发环境中复现和定位问题。
可复用。当我们刚搭建好测试环境,安装测试软件之前及测试过程中,对操作系统及测试环境进行备份是必要的。在当测试环境遭到破坏时,可以恢复测试环境,避免测试数据丢失,出现不可预知的问题。
如何搭建测试环境
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数据库,将各种数据有序的管理起来,并对其他应用提供统一的接口和服务。
2. LNMT架构部署
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的配置文件server.xml,避免端口冲突。server.xml配置的是地址、端口、最大连接数、编译好的应用程序目录等信息
- 启动Tomcat服务
- 验证部署成功,即浏览器输入ip地址+端口号能成功访问
5)配置Nginx
- 配置负载均衡和两个Tomcat的反向代理
- 检查语法并加载Nginx
- 验证配置成功
一般测试人员部署测试环境步骤
运维/开发人员会给到测试人员一份部署文档,文档中会写清楚部署步骤和注意事项,主要有以下几项:
- 安装软件,如tomcat、jdk、mysql等;
- 上传项目包,如war包,放到tomcat的webapps目录下,解压war包的命令:unzip xxx.war;
- 修改配置,根据文档中说明修改tomcat、数据库等配置信息,项目的配置文件一般在项目名/WEB-INF/classes/这个目录下;
- 启动数据库,一般开发会给出初始化sql脚本;
- 重启tomcat服务。
- 查询相应的进程:ps -ef | grep tomcat7
- 杀掉进程:kill 进程编号
- 重启tomcat:执行tomcat/bin下的./shutdown.sh停止,再输入./startup.sh重新启动