美文网首页
jmeter-获取系统最大并发数

jmeter-获取系统最大并发数

作者: zixuan100 | 来源:发表于2021-07-01 10:24 被阅读0次

问题:有一个页面,需要测试一下最大支持多少用户并发?

此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为同时发起请求;

针对这个问题,我们可以通过rps定时器或阶梯加压线程组测试每秒最大的请求数;

首先需要导入jmeter-plugins插件 ,然后去初始化需要用到的插件

在平衡状态下,并发数=RPS*响应时间

a)使用jp@gc - Throughput Shaping Timer(吞吐量成形计时器,调节rps的定时器);

设置线程组中线程数为50,ramp-up时间为1s,永远循环;

同时在请求下面加Throughput Shaping Timer定时间,rps由1增加到400/s;

测试最终运行时间取 线程组运行时间 与 定时器时间的最小值;

设置后我们需要添加几个性能测试中常用的监听器:

添加监听器Hits per Second(每秒请求数)

观察HPS走势,HPS在140的时候持续了十几秒,随后HPS稳定在100

 添加监听器 Transaction per second

TPS在48/s稳定了十几秒,然后稳定在30/s

  添加监听器 jp@gc - Response Times Over Time

平均响应时间在3s以内

 在比较稳定的情况下,最大rps=140/s,平均响应时间=1.6s,则最大并发=140*1.6=224,也就是224个线程同时启动可满足1s内140/s HPS压力值

b)使用阶梯加压线程组

功能如下:

This group will start 100 threads:设置线程组启动的线程总数为400个;

First,wait for N seconds:启动第一个线程之前,需要等待N秒;

Then start N threads:设置最开始时启动N个线程;

Next,add 100 threads every 2 seconds,using ramp-up 10 seconds:每隔2秒,在10秒内启动100个线程;

Then hold load for 40 seconds:启动的线程总数达到最大值之后,再持续运行40秒;

Finally,stop 100 threads every 0 seconds:同时停止100个线程;

设置阶梯线程组各配置项后,再添加各个监听器后观察,发现得出的tps,rps,平均响应时间与添加rps监听器测试出的结果基本一致

下面可以来验证一下,线程组的线程数设置为224,其它值可随意,(如,设置定时60s,循环次数设置为100,因为并发数=rps*响应时间 是在平衡状态下得出的结论,所以运行时间不能太短)

添加监听器Hits per Second,Transactions per Second,Response Times Over Time 查看这些指标是否和上面得出的结果一致(预期应该是满足的)

我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

路径:

假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如http://www.baidu.com,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:

在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:

然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:

${__StringFromFile(C:\Users\wukong\Desktop\test.txt,,,)}

在test.txt测试文件中,我们每行写一个URL链接,如下格式:

如果地址是:www.quzhuanpan.com.那么。在test.txt中的内容,就是相对地址;如

这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。

另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的

3) 查看运行结果

鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:

各属性如下:

Sample:每个请求的序号

Start Time:每个请求开始时间

Thread Name:每个线程的名称

Label:Http请求名称

Sample Time:每个请求所花时间,单位毫秒

Status:请求状态,如果为勾则表示成功,如果为叉表示失败。

Bytes:请求的字节数

在下面还有几个参数:

样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数

平均:每个线程请求的平均时间

最新样本:表示服务器响应最后一个请求的时间

偏离:服务器响应时间变化、离散程度测量值的大小。

相关文章

  • jmeter-获取系统最大并发数

    问题:有一个页面,需要测试一下最大支持多少用户并发? 此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为...

  • Linux 系统内核参数调优

    通过调试系统内核参数使系统性能最大化 如:最大并发数(ab –n 10000 –c 100 http://loca...

  • OS开发多线程篇—NSOperation基本操作

    一、并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同...

  • 信号量Semaphore

    异步并发控制线程数 dispatch_semaphore_create 设置最大并发数 dispatch_sema...

  • golang记录

    获取本地IP 限制golang最大并发数 golang最快响应伪代码如下 反射修改对象属性 关于defer中坑的最...

  • 参数化的例子

    注意 队列的 queue.Queue() 数量必须大于或者等于最大并发数,否则最多并发数不准确

  • iOS多线程篇-NSOperation方法使用

    NSOperation-方法使用 一、并发数 简介(1)该属性控制队列是串行执行还是并发执行(2)如果最大并发数等...

  • jmeter(九) 简单压测

    压测策略:不同并发数:10,50,100,200,400 压测结果:并发数:最佳并发用户数、最大并发用户数流量:每...

  • 影响网络并发数的几个配置

    影响网络并发数的几个配置:1、系统级最大文件数和单进程最大文件数 2、单进程limit限制 3、nf_conntr...

  • JDBC模拟超过最大链接数

    mysql默认支持的最大并发数是多少不确定 代码模拟超过最大连接数

网友评论

      本文标题:jmeter-获取系统最大并发数

      本文链接:https://www.haomeiwen.com/subject/egcprltx.html