我是靠谱客的博主 顺利大叔,最近开发中收集的这篇文章主要介绍Jmeter压测学习记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

名词解释

并发数:指同一时间点对业务功能同时操作的用户数,可以分为两种:一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这时业务功能一般指同一类型的业务;另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的,这时业务功能可能不是同一类型的业务。

一般来说,在系统的设计范围之内,吞吐量随系统的并发用户数的增加呈现增加趋势,也就是说你客户端来多少请求数系统吃(处理)多少请求数;当超出这个范围时有两种情况,一种是系统只能处理这么多,超过这个数系统不接收了,最后随着并发用户数的增多吞吐量是一个水平的直线;

还有一种情况是不管来多少系统都接收最后导致系统吞吐量下降甚至系统崩溃。并发用户数是客户端单位时间内对服务器端施加的压力,具体能不能接受并处理要看被测系统的吞吐量,而吞吐量是被测系统单位时间内处理的请求数或者说单位时间内处理的字节数;一个着重于客户端的操作即测试手段,一个着重于应用系统的处理能力即查看对象;(上面的讨论没有考虑两者的单位,如一个用户同时有多个请求情况)

参考公式:

平均并发用户数的计算:C=nL / T

其中C是平均的并发用户数,n是平均每天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

并发用户数峰值计算: C^约等于C + 3*根号C 其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论。(该公式针对一般被测系统,特殊不做讨论)

吞吐量计算:当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU * R / T其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间,其实通过这个公式就能看出吞吐量与并发用户数之间的关系了(这里的VU就是我们用工具模拟的并发用户数)。

总结:对于本小白,以上内容理解及实践难度系统大,粗浅理解总结:并发用户数=同一时间操作系统的用户量

——————————————————————————————手动分割————————————————————————————————————

QPS:(百度:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。)

总结:类似TPS,是系统在特定时间内的每秒查询率

重点:QPS=并发量/平均响应时间

TPS:(百度:吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。)

总结:每秒处理事务数

重点:一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢。系统吞吐能力越低,反之越高。

系统吞吐量几个重要參数:QPS(TPS)、并发数、响应时间

响应时间(RT):(百度:响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。)

总结:一般取平均响应时间

以Jmeter为例

操作:

第一步:创建测试计划

第二步;添加测试进程(文件--模板快速完成第一步和第二步)

第三步:添加取样器(我们正常一般都是http,但也支持FTP和TCP请求,具体自己按照实际需求去看)

第四步:增加断言(判断请求结果是否符合预期)和配置元件(修改cookie,请求头header,缓存等信息,从文件读取数据),不需要的话则跳过

第五步:增加监听器,目的是为了查看结果,一般是以下几个:查看结果树、聚合报告、汇总报告、用表格查看结果、汇总图,结果支持写入一个指定的文件

第六步:将要测试的接口内容填写到HTTP请求中,修改配置元件和监听器的内容

第七步:执行,分析执行结果

解释:

线程数(类似上述所说VU*R):系统同时处理事物的数量(request),Ramp-Up time:启动全部线程所需的时间

并发数 = 线程数 X 循环次数  / Ramp-Up time

例1:线程数20,10s处理完,循环次数50,并发数:20*50/10=100/s

例2:并发数100,10s处理完,QPS :100/10=10/s

报告解析

样本数、平均值、中位数、90%95%、异常、吞吐量、接收、发送

最主要关注:异常(请求成功率)、吞吐量(TPS)和请求响应量QPS

例如:设置了100个线程,100次循环,10S内完成请求,异常是0的话,并发数就是100*100/10=1000/S,单个接口吞吐TPS正常情况下等于QPS

相关信息来源:

https://www.sohu.com/a/256477206_100224606

辅助学习资料:

https://www.cnblogs.com/canglongdao/p/12620948.html

https://blog.csdn.net/weixin_42180610/article/details/83996251

 

最后

以上就是顺利大叔为你收集整理的Jmeter压测学习记录的全部内容,希望文章能够帮你解决Jmeter压测学习记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部