关于Jmeter线程组的设置,看这一篇就够了
一、事件背景
个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧!
也就在上周让我对自己的测试方法及体系产生了质疑!
为什么?在性能测试的时候,压测500并发通过,人家40并发都过不去。
通俗点说,就是你测试没问题,在人家那测试出问题了,忽略脚本问题,显而易见因为测试方法差异导致测试结果的不同。
1、关于执行方法的差异
- 同事的做法是直接跑10分钟的稳定性测试,然后上并发数;
- 我的做法一个用户循环访问一次,然后上并发数;
2、关于执行结果的差异
- 同事这种方式比我的方式,对目标服务器的压力更大;
- 体现在哪,如果循环次数选择了一旦选择了永远,即请求次数会比我的方式多,所以自然压力也大;
3、真的是我测试方法错了吗
我和同事分别测试两个系统,具体还是有些区别的:
- 同事这边业务场景有40个接口,执行一次最多1分钟,要不就是20秒,具体没记清楚;
- 我这边的业务场景有76个接口,执行一次大约50分钟,如果我直接上负载测试10分钟,根本跑不完一组业务场景;
- 我去请教大周老师,老师说正常先要让跑一定的时间,可以查看是否稳定运行及测试结果是否一致准确,性能测试本就是多次测试的结果。
4、结论
我是在最后跑的稳定性测试,是8小时起步,从时间上看覆盖到了他的十分钟,而且压力更大。
但是,有些同学会问他测试的对吗,他的思路是对的,因为他执行一次业务场景,小于10分钟,在小批量并发测试师没问题的。
当然,如果并发量上来后,还是设置十分钟的话,会出现我那种情况 业务场景接口没执行完的情况,此处,大家自行尝试见分晓。
二、关于线程组的相关设置
我又去查了大量资料,终于找到了一篇我觉得比较在理的文章,并举例给大家演示,我觉得这个同学的理论好像是对的,因为我也测试了下,发现也吻合我的测试结果(算求生存吗?)!
下面我将举例说明,该方法。
1、执行第一次数据采样,得到吞吐率和平均响应时间

由图可知:
吞吐率=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、得出的测试方案
那么我们的测试方案如下:

5、关于公式

图片来源于网络,侵删
三、写在最后
真的是,活到老,学到老,遇到问题,多总结,多分析就好,技术需要严谨,不定期复盘。感兴趣的同学,可以自己动手尝试下。
关于Jmeter线程组的设置,看这一篇就够了的更多相关文章
- 【转】关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念
关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念 笔者是个刚刚踏入压力测试领域不到2个月的小菜,这里分享一下线程组中3个参数之间关系的个人见解,不喜请!喷!,望大家 ...
- 关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念
关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念 笔者是个刚刚踏入压力测试领域不到2个月的小菜,这里分享一下线程组中3个参数之间关系的个人见解,不喜请!喷!,望大家 ...
- JMeter线程组编辑区揭秘
线程组编辑区如下: 有点复杂,但是慢慢看下来,还是比较容易理解. Name 带有业务含义的名字. Comments 线程组的备注说明. Action to be taken after a Sampl ...
- Java中的多线程=你只要看这一篇就够了
如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...
- [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...
- JVM内存模型你只要看这一篇就够了
JVM内存模型你只要看这一篇就够了 我是一只孤傲的鱼鹰 让我们不厌其烦的从内存模型开始说起:作为一般人需要了解到的,JVM的内存区域可以被分为:线程栈,堆,静态方法区(实际上还有更多功能的区域,并且这 ...
- 2019-5-25-win10-uwp-win2d-入门-看这一篇就够了
title author date CreateTime categories win10 uwp win2d 入门 看这一篇就够了 lindexi 2019-5-25 20:0:52 +0800 2 ...
- windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看
windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看 1. 新建excel表格 A B C D E 姓 名 全名 登录名 密码 李 四 李四 李四 test123!@ ...
- 什么是 DevOps?看这一篇就够了!
本文作者:Daniel Hu 个人主页:https://www.danielhu.cn/ 目录 一.前因 二.记忆 三.他们说-- 3.1.Atlassian 回答"什么是 DevOps?& ...
随机推荐
- SpringBoot之日志注解和缓存优化
SpringBoot之日志注解和缓存优化 日志注解: 关于SpringBoot中的日志处理,在之前的文章中页写过: 点击进入 这次通过注解+Aop的方式来实现日志的输出: 首先需要定义一个注解类: @ ...
- 云原生的弹性 AI 训练系列之三:借助弹性伸缩的 Jupyter Notebook,大幅提高 GPU 利用率
Jupyter Notebooks 在 Kubernetes 上部署往往需要绑定一张 GPU,而大多数时候 GPU 并没有被使用,因此利用率低下.为了解决这一问题,我们开源了 elastic-jupy ...
- 什么是js事件,冒泡机制,事件捕获,默认行为
js事件: javascript使我们能够有能力创建动态页面,事件就是可以被js侦测到的行为,网页中每个元素都可以产生某些触发js函数的事件. 例如我们可以在用户点击某个按钮时产生一个click事件来 ...
- MySQL:提高笔记-3
MySQL:提高笔记-3 学完基础的语法后,进一步对 MySQL 进行学习,前几篇为: MySQL:提高笔记-1 MySQL:提高笔记-2 MySQL:提高笔记-3,本文 说明:这是根据 bilibi ...
- 航胥:北航教务助手——Beta阶段发布声明
下载地址在文章末尾! 这里是"航胥",一款更想要了解你的北航教务助手 Beta阶段,我们进化了! Beta阶段我们的新功能有: 课程评价功能 所有用户选过的课程都会在课程评价页面进 ...
- Spring DeferredResult 异步请求
Spring DeferredResult 异步请求 一.背景 二.分析 三.实现要求 四.后端代码实现 五.运行结果 1.超时操作 2.正常操作 六.DeferredResult运行原理 六.注意事 ...
- Seata整合SpringBoot和Mybatis
Seata整合SpringBoot和Mybatis 一.背景 二.实现功能 三.每个服务使用到的技术 1.账户服务 2.订单服务 四.服务实现 1.账户服务实现 1.引入jar包 2.项目配置 3.建 ...
- spring cloud config的使用
在传统的应用中,我们的配置文件都是放在项目中,这个影响不大.但是在一个微服务架构的系统中,我们的微服务可能存在几十上百个,并且每个小的微服务可能又部署在多台机器上,那么这个时候如果我们的配置文件在都放 ...
- [HNOI2009]双递增序列(洛谷P4728)+小烈送菜(内部训练题)——奇妙的dp
博主学习本题的经过嘤嘤嘤: 7.22 : 听学长讲(一知半解)--自己推(推不出来)--网上看题解--以为自己会了(网上题解是错的)--发现错误以后又自己推(没推出来)--给学长发邮件--得到正确解法 ...
- 21.10.9 test
T1 购票方案 \(\color{green}{100}\) 对于每个时间节点维护它作为每种票所能包含的最后一个点时,这种票的起始点位置,由于这个位置是单调的,所以类似双指针维护,\(O(KN)\) ...