详解Jmeter线程组的设置方法

作者:久曲健 时间:2021-11-14 10:10:56 

一、事件背景

个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧!

也就在上周让我对自己的测试方法及体系产生了质疑!

为什么?在性能测试的时候,压测500并发通过,人家40并发都过不去。

通俗点说,就是你测试没问题,在人家那测试出问题了,忽略脚本问题,显而易见因为测试方法差异导致测试结果的不同。

1、关于执行方法的差异

  • 同事的做法是直接跑10分钟的稳定性测试,然后上并发数;

  • 我的做法一个用户循环访问一次,然后上并发数;

2、关于执行结果的差异

  • 同事这种方式比我的方式,对目标服务器的压力更大;

  • 体现在哪,如果循环次数选择了一旦选择了永远,即请求次数会比我的方式多,所以自然压力也大;

3、真的是我测试方法错了吗

我和同事分别测试两个系统,具体还是有些区别的:

  • 同事这边业务场景有40个接口,执行一次最多1分钟,要不就是20秒,具体没记清楚;

  • 我这边的业务场景有76个接口,执行一次大约50分钟,如果我直接上负载测试10分钟,根本跑不完一组业务场景;

  • 我去请教大周老师,老师说正常先要让跑一定的时间,可以查看是否稳定运行及测试结果是否一致准确,性能测试本就是多次测试的结果。

4、结论

我是在最后跑的稳定性测试,是8小时起步,从时间上看覆盖到了他的十分钟,而且压力更大。

但是,有些同学会问他测试的对吗,他的思路是对的,因为他执行一次业务场景,小于10分钟,在小批量并发测试师没问题的。

当然,如果并发量上来后,还是设置十分钟的话,会出现我那种情况 业务场景接口没执行完的情况,此处,大家自行尝试见分晓。

二、关于线程组的相关设置

我又去查了大量资料,终于找到了一篇我觉得比较在理的文章,并举例给大家演示,我觉得这个同学的理论好像是对的,因为我也测试了下,发现也吻合我的测试结果(算求生存吗?)!
下面我将举例说明,该方法。

1、执行第一次数据采样,得到吞吐率和平均响应时间

详解Jmeter线程组的设置方法

由图可知:

吞吐率=2.6≈3,平均响应时间:t=0.386秒;

2、计算ramp-up period

假设线程N=10,估计的吞吐率=3, 那么估计的理想ramp-up period (T)(可以理解为线程启动的准备时间)= 10/3 = 3 秒。

3、循环次数计算

现在计算循环次数A。由于我们要考虑在第一个线程结束的时候,确保最后一个线程能启动,那么至少要大于一个值,这个值定位S=T-T/N=3-3/10=2.7。

当时间到 S=(T-T/N)时,最后一个线程启动,若要使所有线程同时运作,则需要在最后一个线程启动的时候第一个线程仍未关闭,为达到这个要求,需满足A > S/t
A>2.7/0.386=6.994≈7次   A>(T-T/N)/t

4、得出的测试方案

那么我们的测试方案如下:

详解Jmeter线程组的设置方法

5、关于公式

详解Jmeter线程组的设置方法

来源:https://www.cnblogs.com/longronglang/p/15616104.html

标签:Jmeter,线程组
0
投稿

猜你喜欢

  • ImportBeanDefinitionRegistrar手动控制BeanDefinition创建注册详解

    2021-11-11 18:49:18
  • Android中使用Bitmap类将矩形图片转为圆形的方法

    2022-01-04 18:47:40
  • 微信小程序微信登录的实现方法详解(JAVA后台)

    2023-08-29 12:37:25
  • Proxy实现AOP切面编程案例

    2023-07-23 06:44:52
  • 微信开发--自定义菜单查询返码乱码的解决方法

    2023-11-25 04:47:55
  • Android自定义流式布局的实现示例

    2022-10-14 23:30:44
  • 一问详解SpringBoot配置文件优先级

    2023-01-08 05:40:14
  • Java并发编程之JUC并发核心AQS同步队列原理剖析

    2023-01-15 15:14:37
  • C#实现简单串口通讯实例

    2022-06-18 11:29:42
  • 详解Spring如何解析占位符

    2023-11-27 12:44:46
  • C#并查集(union-find)算法详解

    2023-10-27 12:18:54
  • DataGridView实现点击列头升序和降序排序

    2022-07-31 21:54:01
  • Java通过CMD方式读取注册表任意键值对代码实践

    2021-10-10 19:56:40
  • Idea中SpringBoot多模块项目的建立实现

    2023-11-08 07:52:34
  • 关于统计数字问题的算法

    2023-11-03 00:33:32
  • Spring AOP的底层实现方式-代理模式

    2022-10-05 23:27:50
  • java字符串替换排序实例

    2023-05-30 07:58:29
  • 盘点MQ中的异常测试

    2022-05-06 07:39:24
  • 关于c#中枚举类型支持显示中文的扩展说明

    2023-02-02 22:35:02
  • Java使用DOM4j实现读写XML文件的属性和元素

    2021-10-19 00:21:52
  • asp之家 软件编程 m.aspxhome.com