在添加线程组:发现线程组种类挺多的  翻查资料后对几个工具进行总结;

原本想写三个 在翻阅资料,后发现下面博文比较详情,

本文大部分来自:

https://blog.csdn.net/sinat_32434273/article/details/81119516

本文 jmeter 版本是5.0

=======================================================================================

右键测试计划->添加->Threads(Users),选择对应的线程组进行添加

基本的线程:

  • Thread Group
  • setup Thread Group
  • tearDown Thread Group

通过插件形式添加的包括:

  • bzm - Arrivals Thread Group
  • bzm - Concurrency Threadp Group
  • bzm - Free_From Arrivals Thread Group
  • jp@gc - Stepping Thread Group(被弃用)
  • jp@gc - Ultimate Thread Group

Thread Group、setUp Thread Group和tearDown Thread Group

(1)Thread Group是我们通常使用的线程,模拟用户数,每一个线程就相当于一个虚拟的用户;

(2)setUp Thread Group是一个特殊的线程组,用于执行测试之前的初始化操作;

(3)tearDown Thread Group是一个特殊的线程组,用于执行测试结束之后的回收工作;

Thread Group 线程组

线程组,或者可以叫用户组,进行性能测试时的用户资源池

是任何一个测试计划的执行开始点;

是控制器 和HTTP请求(采集器)必须在线程组内,监听器等其他组件,可以直接放在测试计划之外;

线程组 每个字段设置的定义:

按照下面三个功能进行区分:

1.区域1:在取样器出现错误后要执行的动作, 意思如果采样器出现错误,将按照此设置执行

1.1 continue(继续):将继续执行接下来的操作;

1.2 start next thread loop: 忽略错误,执行下一次循环;

1.3 stop thread :停止当前线程(不在进行此线程的任何操作);

1.4 stop test: 等等当前采样器执行结果后, 停止整个测试;

1.5 stop test now: 立即停止所有测试;

2. Thread Properties 线程属性:

2.1 number of threads : 并发线,模拟多少个虚拟用户操作

2.2 ramp_up period : 达到指定线程需要的时间,即在设置时间内线程数达到设定的线程数,不知道为所有线程全部启动;如图片表示线程数是50个,时间设置3,每秒需要启动的线程数是:50/3=16.666

2.3 loop count : 循环次数, 如果不设定具体的值,就会一直循环下去,知道手动停止

2.4 delay thread creation until need 直到需要时延迟线程的创建

2.5 sceduler :调度器

3.Scheduler Configuration 调度器设置:

3.1 duration(seconds):压测持续时间

3.2 start delay (seconds): 启动延迟时间,即点击启动后在改时间之后才正式开始测试

2、Concurrency Thread Group、Stepping Thread Group

Concurrency Thread Group和Stepping Thread Group都可用于阶梯式加压测试,但是由于Stepping Thread Group已经不再被官方推荐使用了,我们对Concurrency Thread Group进行简单介绍。

target concurrency:目标并发数

ramp up time(min):加速时间

ramp-up steps count:加速步骤计数

hold target rate time(min):保持目标费率时间

thread iterations limit:线程迭代次数限制

log threads status into file:将线程状态记录到文件

以上,以图形的方式展示了线程加压的过程。

例如:

100个线程组,加速时间为5分钟,10个加速步骤,保持目标费率10分钟:

10个加速步骤,每步10个线程组;

5分钟/10步=0.5,每步0.5分钟;即每0.5分钟加载十个线程组,直到达到100个;

达到100个线程组之后,所有这些线程组将继续运行,加压十分钟。

3、Ultimate Thread Group

该线程组与Concurrency Thread Group相类似,可以设置多个线程组的结合,各个时刻的运行结果都是几个线程组的叠加。

start threads count:目标并发数

initial delay:启动延迟时间

startup time:启动目标线程所需时间

hold load for:以目标线程并发持续加压时间

shutdown time:结束当前线程时间

4、Arrivals Thread Group

我们可以通过该线程组达到控制请求数的目的。

target rate:目标费率,每秒钟多少个请求数

ramp up time(sec):达到目标费率需要的时间

ramp-up steps count:达到目标费率需要多少步

hold target rate time(sec):保持目标费率时间

thread iterations limit:线程迭代次数限制

log threads status into file:将线程状态记录到文件

concurrency limit:最大并发数限制

例如:

目标费率为100,加速时间为10秒钟,5个加速步骤,保持目标费率10秒钟:

5个加速步骤,每步20增加个费率;

10s/5步=2,每步2秒钟;即每2秒钟加载20个费率,直到达到100;

达到100个费率之后,按照这个标准进行加压10秒钟;

以上,前十秒钟按照设置不断增加费率,请求数为(20+40+60+80+100)*2=600个;后十秒钟,按照每秒100个费率计算,请求数为100*10=1000个;共计1600个请求数。

5、Free-Form Arrivals Thread Group

该线程组与Arrivals Thread Group类似,不过是通过设置起始值、终止值和持续时间来达到压测目的。而且可以设置多个线程的集合。

Jmeter---不同线程组的使用介绍(转)的更多相关文章

  1. jmeter之线程组循环次数

    有时候压测需要配置并发的持续时间,这个可以在jmeter中线程组页面进行配置 1.jmeter的循环次数2种使用场景 2.持续时间功能介绍 3.持续时间的使用场景 1.jmeter的循环次数2种使用模 ...

  2. jmeter之线程组的使用

    线程组 在使用jmeter性能测试时,我们都得先添加个线程组,右键testplan-->添加-->Threads-->线程组.在线程组下执行. 问题:为了能够让jmeter在做性能测 ...

  3. jmeter跨线程组传值

    在测试过程中,有时候需要jmeter跨线程组传值,jmeter本身又不具备此功能,那么,又该如何实现呢? 其实,我们可以通过BeanShell去实现. 实现过程如下: 1.线程组A中,使用正则表达式提 ...

  4. Jmeter跨线程组传递参数

    Jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B中被调用的. 但有时候为了方便,可以把不同模块接口放在不同线程组,就涉及不同线程组传参问题,比如 ...

  5. JMeter 中跨线程组 变量值传递的方法

    关于jmeter中跨线程组 变量值传递的方法         找了好久,终于找到方法了,赶紧整理下来. 1.在线程组1 中使用__setProperty函数设置jmeter属性值(此值为全局变量值), ...

  6. Jmeter 跨线程组传递参数 之两种方法

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  7. Jmeter 跨线程组传递参数 之两种方法(转)

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  8. jmeter跨线程组传值和jmeter跨线程组调用

    Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组.那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用呢?这里以已登录接口返回的access ...

  9. Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 用过 Jmeter 的同学应该都 ...

  10. JMeter 线程组之ConcurrencyThreadGroup介绍

    线程组之ConcurrencyThreadGroup by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 jmeter-plugins-manager-1.3.jar ...

随机推荐

  1. @PostContruct 连接数据库的问题

    在@PostContruct中连接数据库取数据会报错,因为spring的lazy loading机制,不一定所有的bean都已经实例化好了.可以使用ApplicationListener,通过Cont ...

  2. 一、Linux 设备驱动介绍及开发环境搭建

    1.1 Linux 设备驱动介绍 1.1.1 分类及特点 计算机系统的硬件主要由 CPU.存储器和外设组成. 当前 CPU 内部都集成有存储器和外设适配器. 外设适配器有入 UART.IIC 控制器. ...

  3. HTML自定义radio单选按钮(纯css版,样式可以随意改变)

    html: <div> <input id="item1" type="radio" name="item" value= ...

  4. Synchronized 失效原因

    Synchronized 同步出现失效 Synchronized ,大家都知道这个是Java 提供的一种原子性内置锁,其实现原理是通过获取对象的监视器monitor进行来实现同步的,只有当线程获取到对 ...

  5. 一些项目中用到的php函数

    #不为空 if (!empty($_POST)) { } #生成随机数 mt_rand(,)产生999-9999范围间的随机数

  6. Ionic4 & Cordova 打包Android,含签名

    IOS打包必须在Mac环境,以下讲述安卓打包并签名的过程,若是不签名,那么APP不能在手机上安装. 1.添加对应的android框架 ionic cordova prepare android 1)修 ...

  7. float浮动导致父元素高度坍塌的原因及清除浮动方法

        一.浮动产生原因 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. 本来两个黑色对象盒子是在红色盒子内, ...

  8. mysql57 在windows 下无法修改 大小写设置

    参考: https://blog.csdn.net/ceciliawanghenan/article/details/82916662 清空data文件,我的data文件在programdata\My ...

  9. Python使用XML操作mapnik,实现复杂标注(Multi line text symbolizer)

    test.py import mapnik stylesheet = 'world_style.xml' image = 'world_style.png' m = mapnik.Map(1200, ...

  10. Trie树简介

    Trie树, 即字典树, 又称单词查找树或键树, 多叉树 基本性质 根节点不包含字符,除根节点外每一个节点都只包含一个字符 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串 每个节点 ...