目录

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

性能测试环境包含内容

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

性能测试环境的实施策略

总结

重点:配套学习资料和视频教学


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

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

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

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

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

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

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

性能测试环境包含内容                                                                          

一般web应用系统分为3层架构(在系统架构一章中有介绍)

* 表现层(web服务器)

* 业务逻辑层(应用服务器)

* 数据层(数据库服务器)

性能测试环境包含内容

硬件:服务器、客户端、交换机等。

软件:数据库、中间件、被测系统、操作系统等。

网络:有线/无线/宽带、网络协议等。

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

保证性能测试与真实生产环境的一致性,具体从以下三个方面来看:

1、硬件环境,包括服务器环境、与网络环境

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

2、软件环境

版本一致性

  包括包括操作系统、数据库、中间件的版本,被测系统的版本。

配置一致性

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

3、使用场景的一致性

基础数据的一致性

  包括预测的业务数据量,以及数据类型的分配。很简单的一个列子,一个系统的数据库只有10条数据和一条数据库里几千万条数据,我们在对其进行性能测试时,得到的性能指标可能会有非常大的差别。

  为了保证每次测试环境的更加一致性,磁盘的使用情况以及磁盘的碎片情况也会或多或少的影响的性能。

使用模式的一致性

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

性能测试环境的实施策略                                                            

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

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

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

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

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

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

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

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

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

2、通过集群的方式计算

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

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

  随着负载均衡服务器的添加,平均每台服务器的处理能力会逐渐稳定,从而了解在什么情况下需要多少台负载均衡服务器。

  对于测试环境的搭建,建议生成专门的文档进行管理,并进行配置管理,确保对测试环境做到基线控制。

性能测试环境如何搭建?我来告诉你相关推荐

  1. Jmeter性能测试【应用场景、性能测试流程、搭建测试环境】

    目录 一.性能测试的概念 二.性能测试类型 三.性能测试应用场景(领域) 四.性能测试常用的指标 五.性能测试流程 六.搭建测试环境 七.测试用例设计和脚本开发 八.测试数据准备 九.性能测试执行和管 ...

  2. (二)企业部分之lnmp环境的搭建:mysql源码安装

    Web服务器架构 Web服务器架构一般主要由系统环境.Web服务器.数据库和语言组成. 可以有以下组成方式: 系统:linux unix windox mac freebsd aix Web服务器:a ...

  3. ubuntu12.10下arm-linux-gcc交叉编译环境的搭建

    交叉编译环境搭建的原因:通俗上讲,因为嵌入式系统可用资源比较少:几十M的ARM 二三百M的flash相对我们的pc机来说资源真的没法比.所以,为了解决这种局面就将PC机等作为主机,搭建开发环境,进行编 ...

  4. Java开发和运行环境的搭建(详细教程)

    对JDK.JRE.Java 的认识 JDK 是Java Development Kit的缩写,即Java开发工具集.JDK是整个Java的核心,包括了Java运行环境(JRE).Java开发工具和Ja ...

  5. 用python搭建环境_搭建一个即开即用的Python环境

    最近为客户开发一个对接Wind金融数据库的Excel数据库,需要用Python做中间层,但Python针对 一般投资与金融行业的人员来说,部署Python环境比较复杂,并且也不太友好,因此我就想把Py ...

  6. matlab开发环境,Windows 下开源开发环境的搭建

    因项目需要在 Windows 下测试开发的程序, 所以研究了一下如何在 Windows 下搭建基于 gcc 的开源开发环境. MSYS2 是 Windows 下的一款开源软件构建和发布平台, 网址为  ...

  7. 五、Microsoft群集服务(MSCS)环境的搭建实验报告

    Microsoft群集服务(MSCS)环境的搭建实验报告 ps:由于没有双网卡配置,所以只是尝试了一下,并不是正确的答案,有一些进行不下去的,就没有做了,重在体验.提前声明,怕给喷~如果有人有正确答案 ...

  8. Windows环境下安装HBase(Hadoop3.1.3、HBase2.2.5)与Linux环境下搭建HBase高可用集群

    Windows环境下安装HBase 下载HBase 官网: https://hbase.apache.org/downloads.html 不同版本集合:https://archive.apache. ...

  9. Windows平台上iPhone基于cygwin开发环境的搭建方法

    cygwin 開發平台(windows版 iPhone SDK) http://www.iphonetw.net/books/unofficialdev/cygwintoolchain Windows ...

最新文章

  1. [Luogu P2014]选课 (树形DP)
  2. koa-static使用时报Unexpected token function
  3. 【独家揭秘】如何获得60万开发者信任?
  4. spring基于XML的AOP-编写必要的代码
  5. java 申请不定长度数组_java中申请不定长度数组ArrayList的方法
  6. 岁月在流逝,从阿里退下来接近70后程序猿带给我的启示
  7. Java面试题及答案,mysql可视化工具
  8. sklearn-preprocessing预处理数据的方法
  9. DSP课设项目(ICETEK-VC5509-EDU)
  10. 小学算术运算测试c语言,c语言小学算术运算测试.doc
  11. 打开计算机管理iis,iis管理器怎么打开?Win7打开iis管理器的操作方法
  12. layuiadmin配置mysql_layuiAdmin 后台管理模板
  13. BEVFusion: A Simple and Robust LiDAR-CameraFusion Framework 细读
  14. android ios9 rom,谁说安卓不如苹果?看Android7.0如何逆袭iOS9.3
  15. 位图字体生成工具 BMFont汉化版
  16. 接下来的认证考试 阿里云云计算专业认证考试(ACP级)
  17. 孩子握笔姿势错误也易致近视
  18. apex数据中心怎么切换服务器,Apex英雄怎么切换服务器
  19. 基于卷积神经网络的多目标图像检测研究(三)
  20. 浏览器类应用后台耗电解析 教你三招让手机更省电!

热门文章

  1. Linux系统:第十四章:安装Docker,java面试编译原理
  2. Unity2017+Easytouch5双摇杆控制角色视角animation动画[新手向]
  3. 5年测试开发,年后被蚂蚁金服以“人员优化”被无情裁员,想给在职的测试人提个醒···
  4. 鸿蒙系统会有新主题吗,华为开发者大会主题确定:鸿蒙系统、HMS 及 EMUI 11 三大升级...
  5. 对账的一些总结- 电信计费系统
  6. DATALIST不显示
  7. 人事工作中的Python运用——批量劳动合同+实习协议
  8. 17 个关于雪花的有趣事实❄️❄️❄️
  9. Origin | 自定义函数图像绘制
  10. 卸载金蝶标准版提示灾难性故障_如何卸载异常金蝶程序