如何搭建测试环境

面试的时候总被问到搭建环境,那么到底什么是测试环境?该如何搭建,下面我们以功能和性能两个角度去探索,和我们实际工作中可能会有一些差别,但是整体思路基本上如此

一、功能测试环境搭建:

1、什么是测试环境

测试环境是指测试运行其上的软件和硬件环境的描述,以及任何其它与测试软件交互的软件,包括驱动和桩
测试环境是指为了完成软件测试工作所必需的计算机硬件,软件,网络设备,历史数据的总称
测试环境=软件+硬件+网络+数据准备+测试工具
(硬件和网络一般由公司运维考虑,历史数据由开发或者运维考虑,测试主要做软件的搭建和测试工具的搭建)

2、环境的分类

  • 开发环境:开发环境是程序员们专门用于开发的服务器,配置可以比较随意,为了开发调试方便
  • 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它放到生产机上。
  • 生产环境:是指正式提供服务的,一般会关掉错误报告,打开错误日志。

三个环境也可以说是系统开发的三个阶段:开发–>测试–>上线,其中生产环境也就是通常说的真实环境

3、搭建环境的意义

1、稳定和可控的测试环境,可以是测试人员话费较少的时间就完成测试用例的 执行,也无需为测试用例,测试过程的维护花费额外的时间,并且可以保证每一个被提交的缺陷都可以在任何时间被准确的重现
2、理想环境有利于代码的调试和分析,但测试结果不能视为真实结果
3、掌握搭建测试环境的技能,测试人的综合技能以及薪资能力会有一定程度的提升

4、如何搭建测试环境

1、配置Java环境(下载JDK并配置环境变量)
2、下载并安装配置Tomcat(最后将IDEA或者eclipse的项目打成war包,解压到tomcat目录下的webapp即可)
3、安装mysql并导入sql(注意:mysql客户端和服务端编码设置,必须设置完再导入sql)
4、项目导入并修改数据库连接配置
5、启动mysql,启动Tomcat,访问既可

5、具体操作

本文只概述,具体操作请参考博主原文,写的很详细
————————————————
原文链接:https://blog.csdn.net/cc_park/article/details/104154212

二、性能测试环境的搭建

前言:

在进行性能则试前,需要完成性能测试的搭建工作,一般包括硬件环境、软件环境及网络环境,可以要求配置和开发工程师协助完成,但是作为一个优秀性能测试工程师,这也是你的必备技能之一。

1.性能测试环境与功能测试环境的区别

那么性能测试环境与功能测试环境有什么不同呢?性能测试对测试环境的干净、独立性要求更高,更为严格。对于一个相对较规范的公司,都会建立其独立的研发环境、测试环境、线网环境(最终运行软件的环境)。

这里多扯一点,系统可以分为C/S架构的系统与B/S架构的系统,C/S架构的系统又可以分为两种,第一种是基本不用与服务器连接的,比如我们用到的java虚拟机JVM,photo shop平面处理软件,我们可以开启软件更新功能,这时软件向服务器发请求,查当前版本是否是服务器端发布的最新版本,然后,提示用例是否需要更新或下载最新版本的软件。当然,我们也可以关闭更新功能或不检测更新。那么这个软件一样可以在电脑上运行。对于这类软件,我的主要测试环境就是用户的电脑。不同硬件配置、不同操作系统下对软件一系列,从安装使用到卸载。除了验证软件与硬件和系统的兼容性能,还需要验证与其它软件是否兼容。

第二种类型的C/S软件要时刻与服务器与连接,比如我的在线网游,QQ聊天工具等。从软件的启动就需要与服务器进行连接,对于此类软件,我们测试环境的重点依然是用户电脑,但服务器端必须也有一个相对应的测试环境支撑。

对于B/S的系统,我们测试环境的重点就要由用户电脑转为服务器端了,因为系统的所有功能都是由服务器端传递给用户的,所以需要验证服务器传递来的功能是否可用,以及功能的容错能力等。

再回到测试环境的问题上,对于一些企业为了节约资源,进行功能测试的测试环境,一台服务器可以运行多个系统,通过技术手段可以使系统之间是不会相互影响的(以前公司就是一台服务器上跑多个tomcat)。因为功能测试的重点大于系统对客户端发来的请求是否可以进行正确的处理。

那么性能测试为什么对系统的环境要求干净、独立呢?性能测试是要对整个系统运行的软件硬件环境进行测试的,如果某环境下运行多个系统,就很难判断其中的某个环境对资源的占用情况。

2.性能测试环境包含内容

  • 一般web应用系统分为3层架构
  1. 表现层(web服务器)
  2. 业务逻辑层(应用服务器)
  3. 数据层(数据库服务器)
  • 性能测试环境包含内容:
    • 硬件:服务器、客户端、交换机等。
    • 软件:数据库、中间件、被测系统、操作系统等。
    • 网络:有线/无线/宽带、网络协议等。

3.如何保证测试环境与真实生产的一致性,

  • 保证性能测试与真实生产环境的一致性,具体从以下三个方面来看:
  1. 硬件环境,包括服务器环境、与网络环境

如服务器的型号以及是否和其它应用程序共享此服务器,是否在集群环境下,是否通过BIGIP进行负载均衡,客户使用的硬件配置情况,使用的交换机型号,网络传输速率。

  1. 软件环境
  • 版本一致性
    包括包括操作系统、数据库、中间件的版本,被测系统的版本。
  • 配置一致性
    系统(操作系统/数据库/中间件/被测试系统)参数的配置一致,这些系统参数的配置有可能对系统造成巨大的影响。所以,除了保证测试环境与真实环境所使用的软件版本一致,也要关注其参数的配置是否一致。
  1. 使用场景的一致性
  • 基础数据的一致性

包括预测的业务数据量,以及数据类型的分配。很简单的一个列子,一个系统的数据库只有10条数据和一条数据库里几千万条数据,我们在对其进行性能测试时,得到的性能指标可能会有非常大的差别。
为了保证每次测试环境的更加一致性,磁盘的使用情况以及磁盘的碎片情况也会或多或少的影响的性能。

  • 使用模式的一致性

尽量模拟真实场景下用户的使用情况,其实,我们在做性能测试前期的需求分析,其主要目的也就是为了更真实的模拟用户的使用情况。

4.性能测试环境的实施策略

上面讲测试环境与生产环境保持一致所需要注意的内容。其实在实际的测试中,我们很难搭建出与生产环境完全一致的一个测试环境,除非我们暂停生产环境用户于进行性能测试,这往往是不可能。一方面某些生产环境是不允许被暂停的,另一方面也为生产环境的安全性考虑。

性能测试环境并不像功能测试环境,为了节省资源可以一台服务器上运行多个系统。由于性能测试的特殊性,整个测试环境需要在严格的独立监控下管理,在很多情况下,我们很难申请到足够的且一致的资源(说白了就是老板是否愿意出钱给你买服务器搭建系统)。对于一个并未上线的项目,其生产环境的配置也属于暂定状态,性能测试的目的就是为了确定具体生产环境的硬件配置。这个时候更不可能用过高的配置来搭建性能环境(除非现成的环境放着不用)。

我们一般通过两种策略来搭建性能测试环境(预估方式均有误差)

  1. 通过建模的方式实现低端硬件对高端硬件的模拟

通过配置测试来计算不同配置下的硬件性能和系统处理能力的关系,从而推导出满足系统性能的真实配置情况,这种模拟需要精确的建模,模型的采样点越多,那么得到的结果越精确,从而将在低端配置下的性能指标通过该模型转化为高端配置下的最终预计性能指标。

例如:搭建一个低端环境,首先需要对这个环境的CPU和内存进行单独的性能基准测试,同过在不同的配置的性能测试,得到一个基准信息列表,当然,在进行这个性能测试的过程中,我们要确定硬件是系统的瓶颈。如果只用一个CUP,在性能测试过程中,其使用率很低,但得到的性能数据都非常底,这起码说明CUP不是系统的平静,这种情况下就无法得到想要的基准值。

在这里插入图片描述

如上图,在一颗CPU情况下,运行100个用户且CUP使用率接近饱和(100%)。在增加至两颗CUP的情况下,可以运行190个用户且UPU使用率接近饱和(100%),以此做记录,那么我们就可以推算出运行800个用户需要多少颗CUP。

如果你在实际应用中使用的CUP型号及其频率并非完全一样,这个时候可以使用EVEREST工具计算每种CUP的得分,对其性能进行评估。

内存也可以使用此方法进行测试推导,这里需要我们多进行试验,对硬件的性能以及对整个项目的结构都要做深入的了解,以便尽量减少误差。

  1. 通过集群的方式计算

对于较大的系统来说,单台服务器的处理能力是有限的,通常都会采用集群的方式来进行负载均衡,完成对海量请求的处理。虽然无法获得整体集群的测试环境,但是可以对集群上的一个节点进行性能测试,得出该节点的处理能力,再计算每增加一个节点的性能损失,同样也可以能过建模的方式得到大型负载均衡情况下的预计性能指标。

例如:首先在单台服务器上获得具体的性能指标,每台服务器能够承受500用户并发,平均TPS为60,响应时间为2秒,接着,添加负载均衡策略,再次测试负载策略下的数据损耗。得出数据后添加1台负载均衡服务器,测试在两台服务器下每台服务器的性能指标,以此类推,可以得到下表:

随着负载均衡服务器的添加,平均每台服务器的处理能力会逐渐稳定,从而了解在什么情况下需要多少台负载均衡服务器。
对于测试环境的搭建,建议生成专门的文档进行管理,并进行配置管理,确保对测试环境做到基线控制。

————————————————
版权声明:本文为CSDN博主「程序员二黑~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53519100/article/details/113700664

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的持续集成工具,可以帮助我们自动化构建、测试和部署应用程序。通过Jenkins搭建测试环境,可以实现自动化测试和集成,提高开发效率和软件质量。 首先,我们需要在服务器上安装Jenkins。可以从Jenkins官网下载适用于特定操作系统的安装程序。安装完成后,我们可以访问Jenkins的Web界面,并进行一些配置。 接下来,我们需要安装和配置相关插件。Jenkins有许多插件可供选择,用于集成不同的开发和测试工具。可以根据项目的需求选择相应的插件,如Git、Maven、JUnit等。通过插件管理界面,我们可以搜索、安装和配置所需的插件。 然后,我们需要创建一个Jenkins项目来构建和测试应用程序。在项目配置中,可以设置源代码管理方式、构建触发器、构建步骤等。例如,可以选择使用Git进行源代码管理,设置定时或者触发器来触发构建过程,配置构建步骤来编译代码、运行单元测试等。 在构建过程中,我们可以使用Jenkins提供的构建工具和插件。例如,可以使用Maven插件来构建项目、运行测试并生成测试报告。通过配置自动化测试相关的插件,我们可以实现自动运行不同类型的测试,如单元测试、集成测试、端对端测试等,并生成相应的测试报告。 最后,我们可以配置Jenkins自动部署测试环境。通过插件或者自定义脚本,可以将构建好的应用程序部署到指定的测试环境。部署完成后,可以通过访问测试环境来进行手动测试或者自动化测试。 总之,通过Jenkins搭建测试环境,我们可以自动化构建、测试和部署应用程序,提高开发效率和软件质量。同时,Jenkins提供了丰富的插件和工具,使得我们能够灵活配置和管理测试环境,满足项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值