性能测试?

一、什么是性能测试

先看下百度百科对它的定义

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

  我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达

到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系统的可扩展性、稳定性。

  学习性能测试,或者对测试结果进行分析,都需要熟悉测试指标。接下来从性能测试分析度量的角度,介绍性能测试

不同维度的测试指标。

二、系统性能指标
2.1 响应时间

  响应时间(Response Time),简称RT,是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,

整个过程所耗费的时间。不包括前端页面的处理和渲染时间。直观上看,这个指标与人对软件性能的主观感受是非常一致

的,因为它完整地记录了整个计算机系统处理请求的时间。响应时间的绝对值并不能直接反映软件的性能的高低,软件性

能的高低实际上取决于用户对该响应时间的接受程度。

2.2 系统处理能力

  指系统在利用系统硬件平台和软件平台进行信息处理的能力,系统处理能力通过系统每秒钟能够处理的交易数量来评

价,交易有两种理解:

  (1)从业务人员角度进行的一笔业务过程;

  (2)从系统角度的一次交易申请和响应过程。

前者称为业务交易过程,后者称为事务,两种交易指标都可以评价应用系统的处理能力。一般情况下,系统处理能力用以

下几个指标来度量:

  HPS(Hits Per Second):每秒点击次数,单位是次/秒

  TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒

  QPS(Query per Second):系统每秒处理查询次数,单位是次/秒

  对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务

流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。

2.3 吞吐量
  指系统在单位时间内处理请求的数量。对于单用户的系统,响应时间可以很好地度量系统的性能;而对于并发系统,

通常需要用吞吐量作为性能指标。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,

如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。

2.4 并发用户数
  指在同一时刻内,登录系统并进行业务操作的用户数量。对于长连接系统来说最大并发用户数即是系统的并发接入能力,

而对于短连接系统而言最大并发用户数并不等于系统的并发接入能力短连接系统的并发用户数与系统架构、系统处理能力等

各种情况相关。

  与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为

用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。

2.5 错误率
  错误率(Error Rate),是指在一定时间内处理请求时发生的错误或失败的次数与总请求数量之比。错误率通常以百分比形

式表示,例如:99%的成功率或1%的失败率等。这个指标越低代表系统性能越好。

三、资源性能指标
3.1 CPU

  CPU又称为中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit),功能主

要是解释计算机指令以及处理计算机软件中的数据。

  CPU指标主要指的CPU利用率,包括:用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。性能测试CPU的评估建

议值:

  (1)CPU利用率要低于业界警戒值范围之内,即小于或者等于75%

  (2)CPU sys%小于或者等于30%

  (3)CPU wait%小于或者等于5%

3.2 内存
  内存是与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈。衡量系统内存是否

有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会

引起系统性能低下。

3.3 磁盘吞吐量
  磁盘吞吐量简称为Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。分析指标主要有每秒

读写多少兆、磁盘繁忙率、磁盘队列数、平均服务时间、平均等待时间、空间利用率等等。其中磁盘繁忙率是直接反映磁

盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%。

3.4 网络吞吐量
  网络吞吐量简称为Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量,单位为Byte/s。

网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,

则需要考虑升级网络设备。网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。

四、中间件指标

  常用的中间件例如Tomcat、Weblogic等指标主要包括JVM、ThreadPool和JDBC,具体如下:

  各项指标参考标准:

    (1)当前正在运行的线程数不能超过设定的最大值

    系统性能较好的情况下,线程数最小值设置50和最大值设置200比较合适。

    (2)当前运行的JDBC连接数不能超过设定的最大值

    系统性能较好的情况下,JDBC最小值设置50和最大值设置200比较合适。

    (3)GC频率不能频繁,特别是FULL GC更不能频繁

    系统性能较好的情况下,JVM最小堆大小和最大堆大小分别设置1024M比较合适。

五、数据库指标

  常用的数据库指标主要包括SQL、吞吐量、缓存命中率、连接数等等,具体如下:

  参考标准:

  (1)SQL耗时越小越好,一般情况下微秒级别;

  (2)命中率越高越好,一般情况下不能低于95%;

  (3)锁等待次数越低越好,等待时间越短越好。

六、稳定性指标

  这里的稳定性是指最短稳定时间,即系统按照最大容量的80%或标准压力(系统的预期日常压力)情况下运行,能够

稳定运行的最短时间。

  一般来说,对于正常工作日(8小时)运行的系统,至少应该能保证系统稳定运行8小时以上;对于7*24运行的系统,

至少应该能够保证系统稳定运行24小时以上。如果系统不能稳定的运行,上线后,随着业务量的增长和长时间运行,将

会出现性能下降甚至崩溃的风险。

  参考标准:

  (1)TPS曲线稳定,没有大幅度的波动;

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/344212.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]winform部署yolov5-onnx模型

【官方框架地址】 https://github.com/ultralytics/yolov5 【算法介绍】 Yolov5,全称为You Only Look Once version 5,是计算机视觉领域目标检测算法的一个里程碑式模型。该模型由ultralytics团队开发,并因其简洁高效的特点而备受关注。Yol…

验证端口连通性的工具 telent nc

验证端口连通性的工具 telent nc 1、怎么验证端口连通性的工具2、telnet3、nc 1、怎么验证端口连通性的工具 telent nc这2个工具都可以验证端口连通性 2、telnet 命令格式 默认是验证tcp端口连通性 telnet ip port如果需要验证udp端口连通性 需要加上 -u telnet -u ip por…

固态继电器SSR光耦OR-806A ,对标替代AQW212

固态继电器 VL60V输出端击穿电压光耦 高隔离电压 60 至 600V 输出耐受电压 工业温度范围:-40 to 85℃ 高灵敏度和高速响应 特征 输入和输出之间的高隔离电压 (Viso:5000 V rms)。 控制低电平模拟信号 高灵敏度和高速响应 …

Java常用类---日期时间类

日期时间类 Date类 简介 在Java中,Date类用来封装当前的日期和时间。Date类提供两个构造函数来初始化对象,如下所示。 通过Date() 使用当前日期和时间来初始化对象。 通过Date(long millisec) 来初始化对象,其中的参数是从1970年1月1日起…

day1·算法-双指针

今天是第一天,GUNDOM带你学算法,跟上我的节奏吗,一起闪击蓝桥杯! 正文展开,今天先上点小菜供大家想用,如有错误或者建议直接放评论区,我会一个一个仔细查看的哦。 双方指针问题一般是在数组中…

react 学习笔记

一、创建虚拟dom ReactDOM.render(虚拟dom&#xff0c;要渲染的节点) <body><div id"test"></div><!-- 引入react核心库 --><script src"../js/react.development.js"></script><!-- 引入react-dom&#xff0c;用…

基于elementUI封装的带复选框el-checkbox的下拉多选el-select组件

效果图&#xff1a; 组件&#xff1a;MultipleSelect.vue <template><el-select v-model"selectValues" v-bind"$attrs" v-on"listeners" multiple placeholder"请选择" style"width: 50%" change"changeSel…

接口测试快速上手指南

大量线上BUG表明&#xff0c;对接口进行测试可以有效提升产品质量&#xff0c;暴露手工测试时难以发现的问题&#xff0c;同时也能缩短测试周期&#xff0c;提升测试效率。但在实际执行过程中&#xff0c;接口测试被很多同学打上了“上手难&#xff0c;门槛高”的标签。 本文旨…

【书生·浦语大模型实战营04】《(4)XTuner 大模型单卡低成本微调实战》学习笔记

《(4)XTuner 大模型单卡低成本微调实战》 课程文档&#xff1a;《XTuner 大模型单卡低成本微调实战》 1 Finetune简介 LLM的下游应用中&#xff0c;增量预训练和指令跟随是经常会用到两种的微调模式 1.1 增量预训练微调 使用场景&#xff1a;让基座模型学习到一些新知识&a…

matplotlib教程(一)—— 入门基础

前言 Matplotlib 是 Python 的绘图库&#xff0c;它能让使用者很轻松地将数据图形化&#xff0c;并且提供多样化的输出格式&#xff1b;它可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等 在使用它之前&#xff0c;应导入&#xff1a;import matp…

【计算机组成原理】程序的转换及机器级表示 常用计算机术语英文缩写汇总

编码 二进制编码的十进制数&#xff08;BCD&#xff09;&#xff1a;Binary Coded Decimal美国信息交换标准代码&#xff08;ASCII&#xff09;&#xff1a;American Standard Code for Information Interchange 数据的排列顺序 最低有效位&#xff08;LSB&#xff09;&…

Docker安装Elesticsearch7详细步骤

​ 1、创建安装目录 mkdir -p /usr/local/docker/es-docker 2、配置虚拟内存 如果不配置&#xff0c;后面启动es会报错。 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 配置如下 vi /etc/sysctl.conf vm.max_map_coun…