一文教你搞懂性能测试常见指标

news2024/10/7 16:16:34

目录

1. 性能指标分类

2. 系统性能指标

2.1 响应时间

2.2 系统处理能力

2.3 吞吐量

2.4 并发用户数

2.5  错误率

3. 资源性能指标

3.1  CPU

3.2  内存

3.3  磁盘吐吞量

3.4  网络吐吞量

4. 中间件指标

5. 数据库指标

6. 稳定性指标

7. 可扩展性指标

8. 可靠性指标

8.1 双机热备

8.2 集群

8.3 备份和恢复

总结:


1. 性能指标分类

从性能测试分析度量的度角来看,可以从如下几个维度来收集考察各项性能指标:

  • 系统性能指标
  • 资源性能指标
  • 中间件指标
  • 数据库指标
  • 稳定性指标
  • 可扩展性指标
  • 可靠性指标

下面将从如上这几个维度,分别从各自维度常见指标,以及指标含义、指标行业参考标准等方面进行介绍。

2. 系统性能指标

系统性能指标,常见的可从如下几类进行参考:

  • 响应时间
  • 系统处理能力
  • 吞吐量
  • 并发用户数
  • 错误率

2.1 响应时间

定义和解释:响应时间,简称RT。是指系统对请求作出响应的时间,可以理解为是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。

在性能检测中一般以压力发起端至被压测服务器返回处理结果的时间为计量,单位一般为秒或毫秒,由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。

行业参考标准:

不同行业不同业务可接受的响应时间是不同的,一般情况,对于在线实时交易:

  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。
  • 保险企业:3秒以下为佳。
  • 制造业:5秒以下为佳。
  • 时间窗口:不同数据量结果是不一样的,大数据量的情况下,2小时内完成。

需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。

 

2.2 系统处理能力

定义和解释:系统处理能力是指系统在利用系统硬件平台和软件平台进行信息处理的能力。系统处理能力通过系统每秒钟能够处理的交易数量来评价,交易有两种理解:一是业务人员角度的一笔业务过程;二是系统角度的一次交易申请和响应过程。前者称为业务交易过程,后者称为事务。两种交易指标都可以评价应用系统的处理能力。

一般情况下,系统处理能力又用以下几个指标来度量:

  • HPS(Hits Per Second) :每秒点击次数,单位是次/秒。
  • TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒。
  • QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。

对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程用QPS来衡量接口查询次数用HPS来表示对服务器点击请求

行业参考标准:

无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下:

  • 金融行业:1000TPS~50000TPS,不包括互联网化的活动
  • 保险行业:100TPS~100000TPS,不包括互联网化的活动
  • 制造行业:10TPS~5000TPS
  • 互联网电子商务:10000TPS~1000000TPS
  • 互联网中型网站:1000TPS~50000TPS
  • 互联网小型网站: 500TPS~10000TPS

2.3 吞吐量

定义和解释:吞吐量是指系统在单位时间内处理请求的数量。

对于单用户的系统,响应时间可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。

而对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。

2.4 并发用户数

定义和解释:并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量。

并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。

与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。

2.5  错误率

定义和解释:错误率简称FR,指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。

行业参考标准:

不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4%

3. 资源性能指标

资源性能指标,常见的可从如下几类进行参考:

  • CPU
  • 内存
  • 磁盘吐吞量
  • 网络吐吞量

3.1  CPU

定义和解释:CPU又称为中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

行业参考标准:

CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。

  • CPU 利用率要低于业界警戒值范围之内,即小于或者等于75%;
  • CPU sys%小于或者等于30%;
  • CPU wait%小于或者等于5%;

3.2  内存

定义和解释:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

行业参考标准:

现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。

               

 

3.3  磁盘吐吞量

定义和解释:磁盘吞吐量简称为Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。

行业参考标准:

磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%。

3.4  网络吐吞量

定义和解释:网络吞吐量简称为Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。

行业参考标准:

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

4. 中间件指标

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

一级指标

二级指标

单位

解释

GC

GC频率

每秒多少次

java虚拟机垃圾部分回收频率

GC

Full GC频率

每小时多少次

java虚拟机垃圾完全回收频率

GC

Full GC平均时长

用于垃圾完全回收的平均时长

GC

Full GC最大时长

用于垃圾完全回收的最大时长

GC

堆使用率

百分比

堆使用率

ThreadPool

Active Thread Count

活动的线程数

ThreadPool

Pending User Request

处于排队的用户请求个数

JDBC

JDBC Active Connection

JDBC活动连接数

行业参考标准:

  • 当前正在运行的线程数不能超过设定的最大值。一般情况下系统性能较好的情况下,线程数最小值设置50和最大值设置200比较合适。
  • 当前运行的JDBC连接数不能超过设定的最大值。一般情况下系统性能较好的情况下,JDBC最小值设置50和最大值设置200比较合适。
  • GC频率不能频繁,特别是FULL GC更不能频繁,一般情况下系统性能较好的情况下,JVM最小堆大小和最大堆大小分别设置1024M比较合适。

5. 数据库指标

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

一级指标

二级指标

单位

解释

SQL

耗时

微秒

执行SQL耗时

吞吐量

QPS

每秒查询次数

吞吐量

TPS

每秒事务次数

命中率

Key Buffer命中率

百分之

索引缓冲区命中率

命中率

InnoDB Buffer命中率

百分比

InnoDB缓冲区命中率

命中率

Query Cache命中率

百分比

查询缓存命中率

命中率

Table Cache命中率

百分比

表缓存命中率数

命中率

Thread Cache命中率

百分比

线程缓存命中率

等待次数

锁等待次数

等待时间

微秒

锁等待时间

行业参考标准:

  • SQL耗时越小越好,一般情况下微秒级别。
  • 命中率越高越好,一般情况下不能低于95%。
  • 锁等待次数越低越好,等待时间越短越好。

6. 稳定性指标

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

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

对于7*24运行的系统,至少应该能够保证系统稳定运行24小时以上。如果系统不能稳定的运行,上线后,随着业务量的增长和长时间运行,将会出现性能下降甚至崩溃的风险。

参考标准:

  • TPS曲线稳定,没有大幅度的波动。
  • 各项资源指标没有泄露或异常情况。

7. 可扩展性指标

定义和解释:是指应用软件或操作系统以群集方式部署,增加的硬件资源与增加的处理能力之间的关系。

计算公式为:(增加性能/原始性能)/(增加资源/原始资源)*100%。

扩展能力应通过多轮测试获得扩展指标的变化趋势。一般扩展能力非常好的应用系统,扩展指标应是线性或接近线性的,现在很多大规模的分布式系统的扩展能力非常好。

参考标准:

理想的扩展能力是资源增加几倍,性能就提升几倍。扩展能力至少在70%以上。

8. 可靠性指标

对于服务端性能测试,从系统可靠性指标度量分析时,常见从三类来入手:

  • 双机热备
  • 集群
  • 备份和恢复

8.1 双机热备

对于将双机热备作为可靠性保障手段的系统,可衡量的指标如下:

  • 节点切换是否成功及其消耗时间。
  • 双机切换是否有业务中断。
  • 节点回切是否成功及其耗时。
  • 双机回切是否有业务中断。
  • 节点回切过程中的数据丢失量在进行双机切换的同时,使用压力发生工具模拟实际业务发生情况,对应用保持一定的性能压力,保证测试结果符合生产实际情况。

8.2 集群

对于使用集群方式的系统,主要通过以下方式考量其集群可靠性:

  • 集群中某个节点出现故障时,系统是否有业务中断情况出现
  • 在集群中新增一个节点时,是否需要重启系统
  • 当故障节点恢复后,加入集群,是否需要重启系统
  • 当故障节点恢复后,加入集群,系统是否有业务中断情况出现
  • 节点切换需要多长时间在验证集群可靠性的同时,需根据具体情况使用压力工具模拟实际业务发生相关情况,对应用保持一定的性能压力,确保测试结果符合生产实际情况。

8.3 备份和恢复

本指标为了验证系统的备份/恢复机制是否有效可靠,包括系统的备份和恢复、数据库的备份和恢复、应用的备份和恢复,包括以下测试内容:

  • 备份是否成功及其消耗时间。
  • 备份是否使用脚本自动化完成。
  • 恢复是否成功及其消耗时间。
  • 恢复是否使用脚本自动化完成指标体系的运用原则。
  • 指标项的采用和考察取决于对相应系统的测试目的和测试需求。被测系统不一样,测试目的不一样,测试需求也不一样,考察的指标项也有很大差别。
  • 部分系统涉及额外的前端用户接入能力的,需要考察用户接入并发能力指标。
  • 对于批量处理过程的性能验证,主要考虑批量处理效率并估算批量处理时间窗口。
  • 如测试目标涉及到系统性能容量,测试需求中应根据相关指标项的定义,明确描述性能指标需求。
  • 测试指标获取后,需说明相关的前提条件(如在多少的业务量、系统资源情况等)。

其中上述提到的【可扩展指标】和【可靠性指标】,大多数公司在开展性能测试的时候很少会涉及到这些测试点,但这些点从产品整体性能和质量角度来讲,又是不得不关注的一些重点,算是给大家提供一些测试思路。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌浏览器Crx插件库-https://crxdl.com/

地址:https://crxdl.com/ postman插件:talend json插件库:csdn插件 抓取视频:猫抓

C++primer(第五版)第十章(泛型算法)

10.1概述 大多数算法定义在头文件algorithm中.另外头文件numeric中定义了一组数值泛型算法. 一般情况下算法不直接操作容器,而是通过迭代器来对元素进行处理,因此迭代器令算法不依赖容器,但算法依赖于元素类型的操作. 泛型算法本身不会执行容器的操作,它们只会运行于迭代器之…

XD教程笔记

一、快捷键 选择: V 粘贴外观: ctrl alt V 矩形: R 组件: ctrl K 椭圆: E 向某一方向对齐: ctrl shift 方向键 钢笔: P 100%显示: ctrl 1 文本: T 锁定&a…

SAP ABAP 查表数据接口

查 SAP 表数据的接口 1.使用范例: 字段注释QUERY_TABLE查询的表名FIELDNAME查询的字段ROWCOUNT查询的行数ROWCOUNT查询的行数OPTIONS查询条件FIELDS查询字段的释义和字符长度DATA查询的数据TOTALROWS符合条件数据的行数 FIELDS 结果: 外围系统接口调用…

图像像素操作与二值化

目录 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 2、图像像素逻辑操作 3、图像二值化 3.1 固定阈值二值化 3.2 自适应阈值二值化 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 Mat img imread("F:/testMap/bijiao.png");Mat white i…

Bootstrap - 【echart】 统计图表基本使用

一. 前言 Bootstrap是一个流行的前端框架,而ECharts是一个流行的可视化库。 Bootstrap可以用来设计网站和应用程序的用户界面,而ECharts可以用来创建交互式和可视化的图表。 chart.js中文文档:http://www.bootcss.com/p/chart.js/docs/ 二.…

MYSQL的基础架构

了解MySQL(超详细的MySQL工作原理 体系结构) 1.MySQL体系结构 2.MySQL内存结构 3.MySQL文件结构 4.innodb体系结构 一、了解MySQL前你需要知道的 引擎是什么: MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同…

现货白银投资技巧实战教程

交易的实战技巧是指一些能让交易者获利的方法,当中一般都包含重要的操作纪律以及资金的配置策略,目标是要让投资者以合理的风险控制,来赢得持续的利润。现货白银投资技巧实战教程主要有以下几方面的内容: 1、充分了解交易细则。交…

腾讯云服务器新手入门_省钱入口_搭建网站全流程

腾讯云服务器新手指南从云服务器创建、远程连接到云服务器、安装操作系统、使用阿里云服务器建站教程等全流程,腾讯云服务器网分享腾讯云服务器从创建、使用到搭建网站全流程指南: 目录 一:腾讯云服务器创建 二:腾讯云服务器远…

leetcode84. 柱状图中最大的矩形(单调栈-java)

柱状图中最大的矩形 leetcode84. 柱状图中最大的矩形题目描述单调栈加数组优化栈结构解题代码演示用数组来优化栈结构,时间会更快 单调栈专题 leetcode84. 柱状图中最大的矩形 来源:力扣(LeetCode) 链接:https://leetcode.cn/prob…

01、Linux运维发展与学习路线图

目录 一、Linux运维行业前景二、运维相关岗位三、Linux运维岗位薪酬四、Linux运维岗知识框架4.1、常见站点系统架构演变1 单机2 多机3 缓存4 向外扩展5 Docker 4.2 知识体系框架图4.3 技术人员成长的阶段4.4 方法论 一、Linux运维行业前景 流程化、标准化的工作越来越依赖于信…

结构光三维测量几种比较成熟的方法

1.飞行时间发 原理:通过直接测量光传播的时间,确定物体的面型。发射脉冲信号,接受发射回的光,计算距离。 精度:毫米级 优点:原理简单,可避免阴影和遮挡等问题,且仪器便携化。 缺点:精度相对较低 2.莫尔条纹法 原理:采用两组光栅,一个主光栅,一个基准光栅,通过…

vue + element 笔记

1.安装nodejs,cmd中运行 node -v 验证是否成功 2.安装cnpm,cmd中运行 npm install -g cnpm --registryhttps://registry.npm.taobao.org,cmd中 cnpm -v 验证是否成功 3.安装vue-cli,cmd中运行 cnpm install --global vue-cli&…

【Spark】介绍,部署与快速入门

文章目录 介绍核心模块Spark CoreSpark SQLSpark StreamingSpark MLlibSpark GraphX 部署命令行Web UI提交应用Local 模式Standalone配置文件添加 JAVA_HOME 环境变量和集群对应的 master 节点启动集群配置历史服务添加日志存储路径添加日志配置webui 配置高可用 Yarn模式配置文…

老照片修复:模糊褪色有划痕的老旧照片如何修复?

在我们的生活中,照片是记录我们生活的重要方式之一。无论是在手机相册里还是在家中的相册里,我们都有很多珍贵的照片,但是随着时间的推移,照片也会老化,甚至出现褪色、划痕、折痕、破损、发霉等情况,这些情…

java多线程使用与踩坑

SpringBoot使用多线程简单方法:地址 线程安全查阅资料参考:地址 背景: 经过上述资料查看,我想写个方法(依靠notify()唤醒,依靠wait()等待)实现两个线程轮流打印。 实现: 1.线程池配…

HCIA复习二---7月4

路由: 按照路由条目,逻辑选址。 控制层面:路由条目的加表:AD metric(华为 priority cost); 数据层面:按照路由条目转发数据包---与操作---最长匹配---递归查找; 静态…

第四十三周周报

学习目标: latent-diffusion 代码 学习时间: 2023.06.17 - 2023.06.30 学习产出: 一、代码 1、前置知识:PyTorch Lightning执行顺序 执行顺序: trainer.fit(model):开始训练模型。 prepare_data()&a…

教你如何将纬地数据与实景三维模型进行叠加

概述: 纬地是公路设计的常用软件,在国内的普及率很高。传统的纬地数据文件以二维线条形式呈现在CAD中。本文提出了一种新思路、新方法,即将纬地的设计成果与无人机航拍的高精度倾斜摄影模型叠加在一起,辅助设计方案复核。 ​纬地…

SpringBoot第19讲:SpringBoot 如何保证接口幂等

SpringBoot第19讲:SpringBoot 如何保证接口幂等 在以SpringBoot开发Restful接口时,如何防止接口的重复提交呢? 本文是SpringBoot第19讲,主要介绍接口幂等相关的知识点,并实践常见基于Token实现接口幂等。 文章目录 Spr…