Jmeter系列-并发线程Concurrency Thread Group的介绍(7)

2023-09-15 12:00:35

简介

  • Concurrency Thread Group提供了用于配置多个线程计划的简化方法,该线程组目的是为了保持并发水平,意味着如果并发线程不够,则在运行线程中启动额外的线程
  • Concurrency Thread Group提供了更好的用户行为模拟,因为它使您可以更轻松地控制测试的时间,并创建替换线程以防线程在过程中完成

现在安装插件

插件包管理工具的下载和安装见文章
进入到选项-plugins manager,选择插件Custom Thread Groups,并下载应用
在这里插入图片描述

创建并发线程

测试加护右键-添加-线程(用户)选择即可
在这里插入图片描述

使用介绍

在这里插入图片描述

  • Target Concurrency:目标并发(线程数)
  • Ramp Up Time:启动时间;若设置 1 min,则目标线程在1 imn内全部启动
  • Ramp-Up Steps Count:阶梯次数;若设置 6 ,则目标线程在 1min 内分六次阶梯加压(启动线程);每次启动的线程数 =目标线程数 / 阶梯次数 = 60 / 6 = 10
  • Hold Target Rate Time:持续负载运行时间;若设置 2 ,则启动完所有线程后,持续负载运行 2 min,然后再结束
  • Time Unit:时间单位(分钟或者秒)
  • Thread Iterations Limit:线程迭代次数限制(循环次数);默认为空,表示一直迭代,如果运行时间到达Ramp Up Time + Hold Target Rate Time,则停止运行线程【不建议设置该值】
  • Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);

注意点

  • Target Concurrency只是个期望值,实际不一定可以达到这个并发数,得看上面的配置【电脑性能、网络、内存、CPU等因素都会影响最终并发线程数
  • Jmeter会根据Target Concurrency的值和当前处于活动状态的线程数来判断当前并发线程数是否达到了Target Concurrency;若没有,则会不断启动线程,尽力让并发线程数达到Target Concurrency的值

Concurrency Thread Group与Standard Thread Group的区别

和Standard Thread Group不同,它不会预先创建所有线程,因此不会使用额外的内存

  • Stepping Thread Group不提供设置启动延迟时间,阶梯增压过渡时间,阶梯释放过渡时间,但Concurrency Thread Group提供
  • Stepping Thread Group可以阶梯释放线程,而Concurrency Thread Group是瞬时释放
  • Stepping Thread Group设置了需要启动多少个线程就会严格执行,Concurrency Thread Group会尽力启动线程达到Target Concurrency值
Stepping Thread Group 是手动场景:测试过程,按照设定好的步骤执行
Concurrency Thread Group 是目标场景:达到某个目标运行场景,测试过程不可控,动态变化
和Loadrunner相比:
Stepping Thread Group :设置并发用户数,持续时间等,每隔多少时间自动增加多少个用户
Concurrency Thread Group:预设一个目标并发数,每隔一段时间增加一部分并发数,直到 TPS 达到目标并发数,然后持续运行一段时间

Concurrency Thread Group 和 Active Threads Over Time

在这里插入图片描述

第一个关注点:阶梯增压过程

  • 看Concurrency Thread Group负载预览图每次阶梯增压都是瞬时增压的,但是实际测试结果可以看到它也是有一个过渡期,并不是瞬时增压

第二个关注点:持续负载运行结束后,所有线程瞬时释放

  • 从图最后可以看到,所有线程都是瞬时释放的
  • 普通的线程组有三种状态:启动、运行、释放;而Concurrency Thread Group的线程可以理解成只有两种状态:启动、运行;因为线程都在极短的时间内就结束了

Concurrency Thread Group特殊情况

如:活跃状态的线程上下波动的很厉害
大致原因
受环境稳定性影响,如电脑网络、内存、CPU;活跃线程数会有波动

如何解决
遇到这种情况可以多调试几次,看看情况如何

结论

  • 其实有波动是正常的,我们没必要纠结
  • 我们要重点注意的是TPS
  • 线程组的负载只是压力值,我们要测的是服务端的性能,需要关注的是服务端的TPS

参考文章

更多推荐

【AI视野·今日CV 计算机视觉论文速览 第250期】Wed, 20 Sep 2023

AI视野·今日CS.CV计算机视觉论文速览Wed,20Sep2023Totally95papers👉上期速览✈更多精彩请移步主页DailyComputerVisionPapersPanopticNeRF-360:Panoramic3D-to-2DLabelTransferinUrbanScenesAuthorsXia

WebGL 用鼠标控制物体旋转

目录鼠标控制物体旋转如何实现物体旋转示例程序(RotateObject.js)代码详解示例效果鼠标控制物体旋转有时候,WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject,该程序允许用户通过拖动(即按住左键移动)鼠标旋转三维物体。为了简单,示例程序中的三维物体是一个立方体,但拖曳鼠

新型智慧公厕“1+3+N”架构,平台、系统、应用的创新

近年来,随着人民生活水平的提高,人们对公共设施的要求也越来越高。其中,如厕问题一直是人们关注的焦点,但传统的公厕设施已经不能满足人们对干净、舒适、安全的需求,这促使了新型智慧公厕的诞生与应用,以如中期科技「智慧公厕-智慧厕所」以“1+3+N”规划策略,让公共厕所实现信息化、智慧化、网络化。本文以智慧公厕源头厂家广州中期

二叉搜索树经典笔试题【力扣、牛客】

文章目录1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历Ⅱ4.二叉树的最近公共祖先1.法一:定位p、q在左还是右分类讨论2.法二:利用stack求出p、q路径求相交值5.二叉搜索树与双向链表1.法一:递归:递归过程修正指针指向2.数组:将二叉搜索树进行中序遍历可以得到由小到大的顺序排列6.前序中序遍历序

Spark_Spark内存模型管理

工作中经常用到Spark内存调参,之前还没对这块记录,这次记录一下。环境参数spark内存模型中会涉及到多个配置,这些配置由一些环境参数及其配置值有关,为防止后面理解混乱,现在这里列举出来,如果忘记了,可以返回来看看:spark.executor.memory:JVMOn-Heap内存(堆内内存),在使用sparksu

云服务器部署k8s集群

在两台不同厂商的云服务器上部署k8s集群,遇到一些问题。在此进行下总结。首先要网络能够互通,我是通过添加虚拟网卡的方式lsmod|grepip_vs#检查是否有开启#临时开启ip_vsforiin$(ls/lib/modules/$(uname-r)/kernel/net/netfilter/ipvs|grep-o"^

【Spark】PySpark DataFrame

1SparkSession执行环境入口2构建DataFrame2.1由rdd构建(StructType、StructField)2.2由pandas.DataFrame构建2.3由外部数据构建2.3.1text数据源2.3.2json数据源2.3.3csv数据源3DataFrame操作3.1SQL风格3.2DSL风格3

WebGL HUD(平视显示器)

目录HUD(平视显示器)如何实现HUD示例程序(HUD.html)示例程序(HUD.js)代码详解在网页文字上方显示三维物体代码详解HUD(平视显示器)平视显示器(headupdisplay)简称HUD,最早用于飞机驾驶。平视显示器将一些重要信息投射到飞机驾驶舱前方的一块玻璃上,飞行员能够将外界的影像和这些重要信息融合

使用vue-cli搭建SPA项目

目录一、SPA项目构建及目录讲解1.1SPA定义1.2SPA优点1.3VueCLI定义1.4VueCLI功能解析1.5安装vue-cli1.6创建SPA项目1.7项目结构说明1.8项目结构说明1.8.1build文件夹1.8.2config文件夹1.8.3node_modules文件夹1.8.4src文件夹1.8.5s

ctfshow web入门(2)

web11打开这个网站,到网站诊断分析模块搜索域名web12提示有时候网站上的公开信息,就是管理员常用密码打开,就是个购物网站因为昨天刚做robots.txt我就搜了一下真的有,提示admin这个页面访问一下,username肯定是admin,但是密码。有点晕。但是看到提示我就又去看了看原来的页面,有没有可疑的密码在末

MQTT服务器搭建

本次搭建的MQTT服务器是emqx提供的服务器1、下载https://www.emqx.com/en/downloads/broker从官网下载5.2.0版本emqx-5.2.0-windows-amd64.zip下载完成直接安装2、配置,修改端口号mqtt默认端口号常规的用法,我们一般使用和开放这两个端口:1883,

热文推荐