首页 > 其他分享 >性能测试

性能测试

时间:2022-11-16 09:45:12浏览次数:37  
标签:性能 系统 并发 TPS 测试 QPS 方法

性能测试分好几种类型:常见的类型有负载测试和压力测试,当然,并发测试也是比较常见的类型。

1、负载测试(可置性测试)
定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据

特点:

1):该方法主要目的是找到系统处理能力的极限

2):该方法在给定的测试环境下进行,通常需要考虑被测系统的业务压力量和典型场景

3):该方法一般用来了解系统的性能容量,或者是配合性能调优来使用

性能容量:系统在保证一定响应时间的情况下能够允许多少并发用户的访问

2、压力测试
定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误

特点:

1)该方法的主要目的是检查系统处于压力情况下是应用的性能表现

该方法通过增加访问压力,使系统资源使用保持在一定水平,检验此时应用的表现,重点在于有无出错信息产生,系统对应用的响应时间等

2)该方法一般通过模拟负载等方法,使得系统的资源使用达到较高的水平

3、验收性能测试
定义:特定条件下验证系统的能力状况

特点:

1)该方法主要目的是验证系统是否具有系统宣称的能力。

方法包括:确定用户场景,给出需要关注的性能指标,测试执行,测试分析几个步骤

2)该方法需要事先了解被测系统的典型场景,并具有确定的性能目标

3)这种方法要求在已确定的环境下进行

4、配置测试
定义:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则

特点:

1)该方法主要目的是了解各种不同因素对系统系能影响的程度,从而判断出最值得进行的调优操作

2)该方法一般在对系统性能状况有初步了解后进行

需要在确定的环境、操作步骤和压力条件下进行

3)该方法一般用于性能调优和规划能力

5、并发测试
定义:模拟多用户并发访问同一个应用、模块或者数据记录时是否存在死锁或者其他性能问题

特点:

1)该方法主要目的是发现系统中可能存在的并发访问时的问题

2)该方法主要关注系统中可能存在的并发问题。比如:内存泄漏、线程锁和资源争用等问题

3)该方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持

常用工具:商业软件loadrunner:功能完整强大,内存占用大,需要收费

开源工具jmeter:开源免费,自由,操作较简单,能辅助完成日常的一些测试工作

6、可靠性测试
定义:给系统施加一定的业务压力,让其持续运行一段时间,测试在这种条件下能否稳定运行

特点:

1)该方法的主要目的是验证系统是否支持长期稳定的运行

2)该方法需要在压力下持续一段时间的运行

3)测试过程中需要关注系统的运行情况

比如:内存使用或者其他资源的使用以及响应时间有无明显变化

7、失效恢复测试
针对有多余备份和负载均衡的系统设计

定义:检测如果系统局部发生故障,系统能否继续使用

特点:

1)该方法主要目的是验证局部故障下系统能否继续使用

2)该方法需要指出:问题发生时“能支持多少用户访问”和“采取何种应急措施”

一般只有对系统持续运行能力有明确指标的系统才需要该类型测试

上述几种类型是针对书中的知识点的归纳,下面列出自己对并发,负载,压力的理解。。。。。。

负载测试:通过不断加压使系统达到瓶颈,为调优提供参考数据

压力测试:

1)稳定性压力测试:在不同的给定的条件下(比如内存的使用,一定时间段内有多少请求等),系统表现出来的处理,反应能力(这里会考虑系统的容错能力,恢复能力)

2)破坏性压力测试:不断加压,直至系统崩溃,挂掉,来得出系统的最大承受能力在哪儿

并发测试:简单理解就是业务场景短时间内有大量的请求需要处理,一般出现在登陆或者某些比较重要的模块,按钮。

8.类型导图

 

9.常用的性能指标
1、QPS(Queries Per Second)
概念:服务器每秒处理查询次数,是一台服务器每秒能够处理的查询次数。用户发起查询请求到服务器做出响应这算一次,一秒内用户完成了50次查询请求,那此时服务器QPS就是50。

2、TPS (Transactions Per Second)
概念:服务器每秒处理的事务数,一个事物是用户发起查询请求到服务器做出响应这算一次。纳尼?这难道不是QPS的概念吗?划重点,这里就要说清楚一个概念了,在针对单接口,TPS可以认为是等价于QPS的,如访问order.html这个页面而言,是一个TPS。而访问order.html页面可能请求了3此服务器(如调用了css、js、order接口),这实际就算产生了三个QPS
所以,总结下就是,在针对单接口的时候TPS = QPS ,否则QPS就要看实际的请求次数了。

3、RT(Res(onse Time)
概念:响应实际,就是从客户端请求发起到服务器响应结果的时间。RT这个参数是系统最重要的指标之一,它的大小直接反应了当前系统的响应状态。基本和咱们用户体验息息相关,现在好一点监控系统一般都有三个RT,即平均、最大、最小。
一般系统RT 100ms 以内是比较正常的,300ms 勉强可以接受,1s的话再加上一些其他的外因,给用户的体验就是实实在在的不爽了。

4、并发数
概念:系统能同时处理的请求的数量,很多人经常会把并发数和TPS理解混淆。举例,请求一个index.html 页面,客户端发起了三个请求(css、js、index接口),那么此时TPS =1 、QPS =3 、并发数 3。
SO,计算公式 :QPS=并发数/RT || 并发数=QPS*RT

5、吞吐量(Throughput)
概念:每秒承受的用户访问量,吞吐量(系统能承受多少压力)和当前请求对CPU消耗、内存、IO使用等等紧密相关。单个请求消耗越高,系统吞吐量越低,反之越高。
一个系统的吞吐量和其TPS 、QPS、并发数息息相关,每个系统针对这些值都有一个相对极限值,只要其中某一个达到最大,系统的吞吐量也就到达极限了。如此时压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,各种资源切换等等的消耗导致系统性能下降。

关系:
所以,理解上面几个关系后,就可以推算出:
QPS(TPS)= 并发数/平均响应时间

6、PV(Page View)
概念:即每个页面的浏览次数,用户每次刷新就算一次。

7、UV(Unique Visitor)
概念:独立访客数,每天访问的用户数,此数据需要根据用户唯一标识进行去重。

8、Load(系统负载)
概念:此数据指的是Linux系统的负载情况,也就是咱们平时所用Top命令时,最上面显示的数据信息( load average: 0.1, 0.2, 0.5)。此时会显示1分钟、5分钟、15分钟的系统平均Load,很显然load average 的值越低,你的系统负荷越小。
简单的说下这个值应该怎么看,如果你是单核cpu,那此值为1的时候就是系统已经满负荷状态了,需要你马上去解决。但实际经验告诉我们,当系统负荷持续大于0.7的时候(也就是70%),就需要你马上来解决问题了,防止进一步恶化。
为什么需要三个值 load average: 0.1, 0.2, 0.5,其实就是给你个参考。比如只有1分钟的是1,其他俩都是0.1,这表明只是临时突发的现象,问题不大。如果15分钟内,系统负荷都是1或大于1,那表明问题持续存在啊。所以你应该主要观察15分钟的系统负荷。
————————————————

 

标签:性能,系统,并发,TPS,测试,QPS,方法
From: https://www.cnblogs.com/fu-ture/p/16892841.html

相关文章

  • 智控测试记录
    测试目录一、上电整机基础测试电压输入24V12V模组正常工作以后(5V3.3V1.8V)二、通讯口测试板载串口(SIP1TTL电平)CAN0CAN1RS232RS485网络通讯(验证1000M)H......
  • ASP .NET Core App.Metrics+InfluxDB+Grafana性能监控
    Grafana介绍及部署请参考这篇博客InfluxDB官网GitHubInfluxDB介绍InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖InfluxDB在DB-Engi......
  • 测试面试 | 一道大厂算法面试真题,你能答上来吗?(附答案)
    时光飞快,眨眼又到一年年底!年底其实是跳槽换坑的绝佳时机,毕竟可以「年前面试,年后入职」,而且面试越早,好坑位较多,可选择的余地也较大。建议有换工作意向的测试同学可以多发发简......
  • 深度学习之回归问题及其性能评价
    1.回归定义回归(regressionanalysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。2.回归常见的评价指标:  2.1平均绝对误差(MAE):绝对误差......
  • Selenium3自动化测试实战--第4章 WebDriver API 1
    WebDriverAPI,用来操作浏览器元素的一些类和方法。4.1从定位元素开始页面元素,都是由HTML代码组成,有层级,每个元素有不同的标签名和属性值。WebDriver提供了8种元素定位......
  • 如何写成高性能的代码(三):巧用稀疏矩阵节省内存占用
    稀疏矩阵的概念一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列。矩阵里的元素可以是数字、符号及其他的类型的元素。一般来说,在矩阵中,若数值为0的元素数目远远多于非0元......
  • Springboot单元测试Junit的坑及解决方案
    最近做springboot项目,写单元测试导入junit的时候,org.junit.jupiter.api.Test和org.junit.Test傻傻分不清,因为习惯了用junit4,所以导入的都是org.junit.Test,普通的测试是没......
  • ApacheBench(压力测试)
    1.post请求(post.txtbody信息)ab-c2000-n50-ppost.txt-T"application/json" url   2.get请求ab-c2000-n50  url  3.参数-n请求数-c......
  • Linux wifi+4G 模块驱动测试记录
    注意:此时WiFi模块的驱动已经修改好。RTL8188USBWIFI联网测试(记录操作步骤)首先使能驱动,在根目录/lib/modules/4.1.15里面。首先命令lsmod可以看到有没有驱动。然......
  • 接口性能指标-QPS-TPS-并发量
    转载:https://www.cnblogs.com/liuqingzheng/p/16207660.html1QPSQueriesPerSecond,每秒查询率,一台服务器每秒能够响应的查询次数。是对一个特定的查询服务器在规定......