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

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

本文大部分来自:

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. java高并发核心要点|系列4|CPU内存指令重排序(Memory Reordering)

    今天,我们来学习另一个重要的概念. CPU内存指令重排序(Memory Reordering) 什么叫重排序? 重排序的背景 我们知道现代CPU的主频越来越高,与cache的交互次数也越来越多.当CP ...

  2. 新建ext4分区及开机挂载

    1.查看新的20G硬盘是否已经挂在完毕. 2.使用fdisk命令创建主分区 3.再将分区设置完毕之后,查看磁盘分区是否创建完成. 2.使用mkfs.ext4命令将新创建的分区进行格式化为: 1)blo ...

  3. oracle基本语句(第五章、数据库逻辑存储结构管理)

    1.使用SYS用户以SYSDBA身份登录到SQL Plus,使用视图V$TABLESPACE查看表空间信息 SELECT * FROM V$TABLESPACE; 2.查看视图DBA_TABLESPA ...

  4. linux常用的命令一:系统工作命令

    系统工作命令: 帮助命令:man -h \ man --help(tips:‘--’长格式后用完整的选项名称,‘-’短格式后用单个字母缩写) echo命令:格式:echo [字符串|$变量] date ...

  5. DOM操作元素

    DOM 操作元素 JavaScript的DOM操作可以改变网页内容.结构和样式.我们可以利用DOM操作元素来改变元素里面的内容.属性等. DOM操作元素: 一.操作元素:(一)innerText .( ...

  6. jmeter--单个接口通,自动化不通时

    单个接口通,自动化不通时,对比两者请求 post 请求的格式,内容编码

  7. java-dockerfile

    java环境dockefile FROM centos:7 MAINTAINER yon@taexa.com ENV JAVA_HOME /usr/local/jdk ENV JRE_HOME ${J ...

  8. java总结1

    栈,堆,方法区.main和局部变量在栈,new 对象 在堆, 类和常量在方法区除了8大基础数据类型,其他都为引用变量局部变量在函数内或方法上声明,没有默认值,定义必须赋值一旦提供构造方法,就不会有默认 ...

  9. ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解

    目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...

  10. ArrayList遍历的三种方法

    在输出很多的ArrayList的元素时,用普通的for循环太麻烦,因此本文介绍三种遍历ArrayList的方法 package test; public class Student { private ...