Jmeter-在工作中运用Jmeter需要知道的性能、负载、压力测试的相关知识点

关于性能测试方面的一些知识

什么是性能测试、负载测试、压力测试

从测试的方法与工具来说,三者都是一样的,压力测试跟负载测试都是属于性能测试的子集(软件测试书籍也是有说明这点)。
从测试的目的来说,三者又是不一样的。
性能测试
软件测试的定义:模拟用户负载来测试系统在负载情况下,系统的响应时间,吞吐量等。(这里的负载指的是用户并发数)所以它的目的是为了获取系统的指标。
负载测试
软件测试的定义:在一定的软硬件环境上,通过不断的加大负载来确定在满足性能指标情况下所能够承受的最大用户数。所以它的目的是为了获取最大用户数。一般不超过80%cpu,正常情况工作下最大用户数数据。
压力测试,也叫强度测试。
软件测试的定义:在一定的软件硬件环境下,通过高负载的手段来使服务器资源处于极限的状态,测试该系统在极限状态长时间运行是否稳定。包括系统指标,服务器性能指标。

也可以用通俗易懂的语言来表达:
1.性能测试:是指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求。
2.负载测试:是通过逐步增加系统负载,测试系统性能的变化,并在满足最终确定性能指标的情况下,
	系统所能承受的最大负载量的测试 。
3.压力测试:测试系统性能的变化,并最终确定在什么负载下系统性能处于失效状态,并以此来获得
	系统能提供的最大服务级别的测试。
	-----------

性能测试主要指标

TPS

目前在业界告诉别人我系统的性能指标,比较容易说的就是QPS。QPS有时也说TPS,指的是每秒钟request/事务。

通常有人告诉你他的接口并发3000通常指的就是QPS=3000,可以理解为他的系统1秒钟接受并处理完毕3000个请求。

QPS的算法就是:完成请求的数量/完成请求所花费的时间;

如果10秒的时间内,系统接受到了3000个请求,返回了2000个,剩下1000报错。它的QPS=2000/10=200个;

	TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务
器 做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息
来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,测试软件就是利用客户机的这些信息使用加权协函数平均方法来计算服务器
端的整体TPS得分。

响应时间

	响应时间,从单个请求来看就是服务响应一次请求的花费的时间。但是在性能测试中,单个请求的响应时间并没有什么参考价值,
通常考虑的是完成所有请求的平均响应时间及中位数时间。
 
	平均响应时间很好理解,就是完成请求花费的总时间/完成的请求总数。但是平均响应时间有一点**不靠谱**,因为系统的运行并不是平稳
平滑的,如果某几个请求的时间超短或者超长就会导致平均数偏离很多。可以参考读新闻的平均工资、平均房价等,你就知道为什么不那
么靠谱了。因此有时候我们会用中位数响应时间。
 
	所谓中位数的意就是把将一组数据按大小顺序排列,处在最中间位置的一个数叫做这组数据的中位数 ,这意味着至少有50%的数据
低于或高于这个中位数。当然,最为正确的统计做法是用百分比分布统计。也就是英文中的**TP – Top Percentile** ,TP50的意思在,
50%的请求都小于某个值,TP90表示90%的请求小于某个时间。

并发数

	并发指的是在某一时间点,服务器正在处理的请求数。
	
	工程师经常说1秒并发2000,其实他指的是QPS=2000。
 
	而一个网站管理员说我们并发1000人,其实指的最大在线人数1000人。在线人数1000人并不意味每个人都同一时间在跟服务器做交互,
因此服务器的并发数并未到1000.
 
	运维人员说我设置的tomcat的并发数500,他指的是这个tomcat最多可以调用500个线程同时接受请求。也就是同一时间服务器能达到的
最大并发数数是500,但是受限于CPU、OS等其他原因,并发数在实际中达不到这个数值。
 
	性能测试人员说我在LR中设置了并发数3000,指的是他在测试工具中设置3000个并发模拟用户,只是理论上在单位时间内最多会有
3000个的模拟请求到服务器上。但是从客户端角度出发,客户端有可能因为CPU、OS、等待时间等等限制,并不能达到此压力。
即使客户端达到了此压力,但是从服务器的角度出发,会有排队机制以及部分请求异常溢出,并不能说服务器的并发就到了3000。

	因此性能测试中的并发数指的是一个测试出来的结果计算值,其计算公式是  QPS*平均响应时间

吞吐量

	吞吐量,是指在一次性能测试过程中网络上传输的数据量的总和。对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量
规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的
价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产10W吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉
2吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。
 
	提示,用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出10吨水;10个水龙头
开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?所以,我们要加单位时间,看
谁1秒钟的出水量大。这就是吞吐率。

最大并发量

	在理解了上述几个指标之后,性能测试的目的就变成了在特定的条件下(固定硬件设备,通常要排除网络瓶颈),寻找系统的最大并发量
的过程。当并发数增大到一定的程度,系统反应时间还在可以接受的范围之内,服务并没有出现失败,或者失败率在可接受的范围内,如果超过
此并发量,系统的指标变得不可接受,则认为这个值是系统的最大并发量。

压力测试与负载测试两者区别 :

相同点:
	都是性能测试 。
不同点:
	负载测试	强调系统正常工作情况下的性能指标 。
	压力测试	的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点。

性能测试的前提:

性能测试的必要性研究----关键项评估
	1:主管部门,监管部门审查
	2:涉及生命财产安全的
	3:大型新系统
	4:核心系统
	5:架构调整
	6:业务剧增
	7:重大缺陷修复;(尤其是换了服务器版本之类的)
	2:可测性-----可以量化成可测的指标

性能测试主要指标

1:并发数
	单位时间内发起请求的用户数
2:吞吐量/吞吐率(单位L:事务/s  Kb/s,网络带宽不限定,这个值越高越好)
	吞吐量:每秒时间内处理的事务数
	吞吐率:吞吐量/单位时间
3:响应时间:
	从发起请求到收到请求响应的时间,性能测试时   时间全算在T2上了
4:TPS:
		每秒通过事务数,是一个数值,么有单位;
	QPS:
		每秒请求的事务数;
		一个接口发起一个请求就是一个事务;
	
	QPS和TPS,在企业里面差不多都是一样的,在测试过程中,测试单接口的话,结果是相同的,多接口则不同;
	
5:资源利用率
资源利用率:cpu 磁盘 I/O  每个不能超过80%,且不能用虚拟内存

开展性能测试必备条件

1:网络要求 同一网段,内外网独立分开 千万不要用跨内网外网
2:独立环境 不能和功能测试共用环境

关于并发用户数和QPS

	并发用户数和QPS两个概念没有直接关系,但是如果要说QPS 时,一定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数
的40QPS和20并发用户数下的40QPS是两个不同的概念。前者说明该应用 可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情
况下,一秒内该应用能处理40个请求,当QPS相同时,越大的并发用户数,代表了网站并 发处理能力越好。对于当前的web服务器,其处理单
个用户的请求肯定戳戳有余,这个时候会存在资源浪费的情况(一方面该服务器可能有多个cpu,但是只处 理单个进程,另一方面,在处理一个
进程中,有些阶段可能是IO阶段,这个时候会造成CPU等待,但是有没有其他请求进程可以被处理)。而当并发数设置的过 大时,每秒钟都会
有很多请求需要处理,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求
等待 时间也会变大,甚至超过用户的心理底线。所以在最小并发数和最大并发数之间,一定有一个最合适的并发数值,在并发数下,QPS能够
达到最大。但是,这个并 发并非是一个最佳的并发,因为当QPS到达最大时的并发,可能已经造成用户的等待时间变得超过了其最优值,所以
对于一个系统,其最佳的并发数,一定需要结 合QPS,用户的等待时间来综合确定。
	并发用户数,QPS,用户平均等待时间的关系图,对于实际的系统,也应该是对于不同的并发数,进行多次测试,获取到这些数值后,
画出这样一张图,以便于分析出系统的最佳并发用户数。这样对于计算服务器,系统的性能至关重要。

QPS、PV和需要部署机器数量计算公式

QPS

	Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量
多少的衡量标准。

QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数

pv 是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次;

单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

服务器计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )

【峰值QPS和机器计算公式】

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3

QPS、PV和需要部署机器数量计算公式转自:https://blog.csdn.net/tolihaifeng/article/details/60959990

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天下的风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值