性能测试?

一、什么是性能测试

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

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

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

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

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

不同维度的测试指标。

二、系统性能指标
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曲线稳定,没有大幅度的波动;

  (2)各项资源指标没有泄露或异常情况。

 

总结:

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

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苹果手表Apple Watch录了两个半小时的录音,却只能播放4秒,同步到手机也一样,还能修复好吗?

好多人遇到这个情况,用苹果手表Apple Watch录音,有的录1个多小时,有的录了3、4小时,甚至更长时间,因为手表没电,忘记保存等原因造成录音损坏,都是只能播放4秒,同步到手机也一样&…

Java8 Stream API全面解析——高效流式编程的秘诀

文章目录 什么是 Stream Api?快速入门流的操作创建流中间操作filter 过滤map 数据转换flatMap 合并流distinct 去重sorted 排序limit 限流skip 跳过peek 操作 终结操作forEach 遍历forEachOrdered 有序遍历count 统计数量min 最小值max 最大值reduce 聚合collect 收集anyMatch…

git源码泄露

Git 源码泄露 开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。 确定是否存在泄漏 (1&…

java项目基于Springboot和Vue的高校心理教育辅导系统的设计与实现

今天要和大家聊的是基于Springboot和Vue的高校心理教育辅导系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕&…

大模型之路3:趟到了Llama-Factory,大神们请指点

各种AI工具和框架层出不穷,为开发者和研究者提供了前所未有的便利。当然了,也有困扰。尤其是对于动手能力越来越弱的中年油腻老程序员来说,更是难上加难。据说,嗯,据师弟说,说LlamaFactory凭借其独特的功能…

实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(一)

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 fdisk [参数] [设备] 1. 为虚拟机添加1块大小为3-5G的硬盘nvme,将该硬盘划分1个主分区和两个逻辑分区分别为600MB。 partprobe [选项] [设备] 2. 将主分区格式化为ext4文件系统并挂载到/自己名字命名…

Screeps Arena 游戏基础教程

一. 游戏内教程汉化1. 循环和导入(Loop and Import)2. 简单移动(Simple move)3. 首次攻击(First Attack)4. 爬虫的身体部分(Creeps Bodies)5. 存储和转移 (Store and Tra…

合并两个单链表

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 但行前路,不负韶华&#…

dataloader numworkers

numworkers是加载数据的额外cpu数量(也可以看成额外的进程)。可以理解是: dataset中的getitem只能得到单个数据, 而numworker设置后是同时加载numwork个数据到RAM中,当需要数据时,不会重新执行getiem的方法…

代码随想录算法训练营第四十二天 | 卡码网46. 携带研究材料、416. 分割等和子集

代码随想录算法训练营第四十二天 | 卡码网46. 携带研究材料、416. 分割等和子集 卡码网46. 携带研究材料题目解法 416. 分割等和子集题目解法 感悟 卡码网46. 携带研究材料 题目 解法 题解链接 二维数组 # include <bits/stdc.h> using namespace std;int n, bagweig…

读取信息boot.bin和xclbin命令

bootgen读Boot.bin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ bootgen -read BOOT-k26-starter-kit-202305_2022.2.bin xclbinutil读xclbin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ xclbinutil -i kv260-smartca…

【Vue】vue3简介与环境配置

文章目录 项目编码规范什么是 Vue&#xff1f;安装node环境nvm针对node版本惊醒管理的工具 项目编码规范 组合式API Typescript setup(语法糖) 什么是 Vue&#xff1f; Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;…

Linux系统下安装jdk与tomcat【linux】

一、yum介绍 linux下的jdk安装以及环境配置&#xff0c;有两种常用方法&#xff1a; 1.使用yum一键安装。 2.手动安装&#xff0c;在Oracle官网下载好需要的jdk版本&#xff0c;上传解压并配置环境。 这里介绍第一种方法&#xff0c;在此之前简单了解下yum。 yum 介绍 yum&…

联系媒体要有方法莫让投稿发文章只剩一声长叹相见恨晚

曾有一位饱经世事的前辈以一句至理名言警醒世人:“人之所以领悟道理,往往不是源于抽象的道理本身,而是生活给予的实实在在的挫折教训,如同撞南墙一般的痛彻觉醒;同样,让人豁然开朗的,也不是空洞的说教,而是实实在在的人生磨砺。”这一哲理,放在我们日常工作中亦有深刻的启示作用…

困难样本挖掘:Hard Sample Mining(原理及实现)

Hard Sample Mining Hard Sample Mining&#xff0c;即困难样本挖掘&#xff0c;是目标检测中的一种常用方法。其主要思想是针对训练过程中损失较高的样本&#xff08;即那些难以被正确分类的样本&#xff09;进行挖掘&#xff0c;并将其补充到数据集中重新训练&#xff0c;以…

【Qt 学习笔记】Qt 背景介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt 背景介绍 文章编号&#xff1a;Qt 学习笔记 / 01 文章目录 Qt 背景…

配置plsql链接Oracle数据库(新手)

配置plsql链接Oracle数据库 安装Oracle客户端 、安装plsql客户端并激活 配置tnsnames.ora文件&#xff08;路径D:\app\peter\Oracle\InstantClient\network\admin根据你的实际路径设置&#xff09; 配置文件如下 # tnsnames.ora Network Configuration File: D:\app\peter\O…

【CKA模拟题】一文教你用StorageClass轻松创建PV

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesYour task involves setting up storage components in a Kubernetes cluster. Follow these steps: Step 1: Create a Storage Class…

卡尔曼滤波笔记

资料&#xff1a;https://www.zhihu.com/question/47559783/answer/2988744371 https://www.zhihu.com/question/47559783 https://blog.csdn.net/seek97/article/details/120012667 一、基本思想 在对一个状态值进行估计的时候&#xff0c;如果想测量值更准&#xff0c;很自然…

“探秘数据结构:栈的奇妙魔力“

每日一言 兰有秀兮菊有芳&#xff0c;怀佳人兮不能忘。 —刘彻- 栈 栈的概念及结构 栈(Stack) &#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守…