线程Threads:场景设置,模拟并发用户发送请求,设置并发策略。即以线程的方式来模拟多用户并发的。常用线程包括:线程组、 jp@gc-Stepping Thread Group、bzm-Arrivals Thread Group。

一、线程组

【线程数】:虚拟用户数,控制多少用户并发

【Ramp-Up时间】:启动所有线程需要的时间;

1. 若是线程数过多,则会>该值启动完所有线程。

2. 为0代表立即启动所有线程;一般不这么设置,因为在测试的开始就建立全部线程并立即发送访问请求,会引起不正常的初始访问峰值。

3. 设置为T,N个线程时,JMeter将每隔T/N秒建立一个线程。T过大会降低访问峰值的负载:后面的线程还没启动,前面启动的部分线程已经结束了。

4. 网上提到设置合理的启动时间的方法:让初始吞吐量接近平均吞吐量,避免启动时间过小,同时最后一个线程启动时,第一个线程还未结束,避免启动时间过大。

【循环】:每个线程的循环次数。用来延长单个线程的运行时间,从而保证当最后一个线程启动时,所有线程都在运行中,达到压测效果。

1.若不勾选永远,设置为固定值。为达到最后一个线程启动时第一个线程还未结束,循环次数的计算方法为:

(1)假设线程数:5,ramp-up:10s,rt:0.2s

(2)最后一个线程启动开始时间 S = 10 - 10/5 = 8s

(3)第一个线程运行时间应该 > 8s

(4)循环次数 a > 8/0.2 = 40,即循环次数最少为40次,此时整个测试理论运行时间 = 40*0.2 + 8 = 16s

【same user on each iteration】迭代使用相同的用户,即使循环时参数化提取不同用户名,请求时使用的是同样的session,不是真正的并发。

【延迟创建线程直到需要】:

  1. JMeter 所有的线程是一开始就创建完成的,只是递增的时候会按照上面的规则递增;
  2. 如果选择了这个选项,则不会在一开始创建所有线程,只有在需要时才会创建。这样CPU 消耗会更平均,但是这时会有另一个隐患:稍微影响正在跑的线程;
  3. 如果不选择,在启动场景时,JMeter 会用更多的 CPU 来创建线程,它会影响前面的一些请求的响应时间,因为压力机的 CPU 在做其他事情。

【调度器】:循环次数中勾选永远,持续时间是就是并发的时间。

举例:

  1. 设置 线程数:100,Ramp-Up:1s, 循环:2。

    表示1秒内启动100线程并循环2次。

  2. 设置 线程数:3,Ramp-Up:1s, 循环:永远,持续时间:5s。

    1s内启动3个线程,持续循环5s。

二、阶梯加压线程组 jp@gc-Stepping Thread Group

  1. 模拟用户并发逐渐增长的场景,可以测试在不断加压过程中观察不同梯度下的Error、Respose Time和TPS的数值变换情况
  2. 一般用来测试每秒最大并发数,平衡状态下,并发用户数n = rps*rt
  3. 一般结合监听器 Active Threads Over Time 使用
  4. 适用于单客户端进行阶梯式压测,但不适合分布式压测。因为当用于分布式压测时,管控机的控制台只能显示单个客户端的测试结果,而不是汇总起来。
  5. Stepping Thread Group插件相对来说比较旧,在plugins插件组中,还有一个类似的优化过的插件,叫做:Concurrency Thread Group

JMeter线程的更多相关文章

  1. jmeter线程组之间传递参数

    JMeter 变量作用域局限于所属线程.这样设计是经过深思熟虑的,目的是让测试线程能够独立运转.有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量. 其中一种方法 ...

  2. 【转】关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念

    关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念 笔者是个刚刚踏入压力测试领域不到2个月的小菜,这里分享一下线程组中3个参数之间关系的个人见解,不喜请!喷!,望大家 ...

  3. 关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念

    关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念 笔者是个刚刚踏入压力测试领域不到2个月的小菜,这里分享一下线程组中3个参数之间关系的个人见解,不喜请!喷!,望大家 ...

  4. JMeter线程组编辑区揭秘

    线程组编辑区如下: 有点复杂,但是慢慢看下来,还是比较容易理解. Name 带有业务含义的名字. Comments 线程组的备注说明. Action to be taken after a Sampl ...

  5. JMeter 线程组之ConcurrencyThreadGroup介绍

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

  6. JMeter 线程组之Stepping Thread Group插件介绍

    线程组之Stepping Thread Group插件介绍   by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13   插件: https://jmeter-plu ...

  7. jmeter线程组之间传参

    背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜 ...

  8. Jmeter 线程组、运行次数参数化

    Jmeter的jmx文件保存了线程数和运行次数等参数,这个参数可以在命令行中传入参数的方式来修改数值 步骤如下 1.生成线程和运行次数的参数 Jmeter选项中函数助手对话框,选中__P参数,这个参数 ...

  9. jmeter线程组介绍

    Jmeter中的测试计划是一直有的,但可以在右侧修改名字,要开始做具体测试设计前,都需要在测试计划下边添加一个线程组,添加路径为鼠标捕获测试计划后,点击鼠标右键->添加->Threads( ...

  10. Jmeter 线程组、运行次数参数化(转)Jpara1=4 -Jpara2=5

    Jmeter的jmx文件保存了线程数和运行次数等参数,这个参数可以在命令行中传入参数的方式来修改数值 步骤如下 1.生成线程和运行次数的参数 Jmeter选项中函数助手对话框,选中__P参数,这个参数 ...

随机推荐

  1. OpenCv:边缘处理&Canny边缘检测

    卷积边缘: 一.在进行卷积的时候,对于原图像(1,1)的位置,左.上方没有足够的像素做卷积. 二.通常,在卷积之前,在原图增加边缘像素,比如(3*3的,增加一个像素) 三.增加像素值得处理方法,通常有 ...

  2. ubuntu iptables 做为路由转发

    实现功能,本地服务器的号段的192.168.8.0/24,而做为路由器的机器有2个ip,192.168.8.x和另一个ip,而另一个ip可以访问 192.168.2.0/24号段, 为了让其它192. ...

  3. Visual Studio 2022(VS2022) 产品密钥

    Visual Studio 2022(VS2022) 激活码: Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2JEnterprise: VHF9H-NXBBB-638P6-6JHC ...

  4. centos6.5升级python3.6并安装boto3模块

    1.先升级openssl yum安装各种依赖,yum install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel tar zxvf ...

  5. 国际版Office365客户端配置

    Email Provider IMAP Settings POP Settings SMTP Settings Microsoft 365 Outlook Hotmail Live.com Serve ...

  6. Npoi.Mapper 日期转换

    问题:Excel文档里有一些列是日期类型的数据,使用Mapper默认的转换,发现生成的实体,在有的系统环境下能正常转换,但是在有的系统环境下,转换的日期出现中文. 猜想是Excel文档里,日期列的单元 ...

  7. sublime 设置快捷键

    Tools-> Developer-> New Snippet 打开后保存文件要是以 .sublime-snippet 做结尾 <snippet> <content> ...

  8. Java-面向对象基础 对象和方法

    // 定义属性 String nick; String color; int age;// 定义类的方法 public void eat(){ System.out.println("在吃东 ...

  9. 原因代码: 0x2000c 关机类型: 关机

    进程 C:\Windows\system32\silsvc.exe (XTKFSERVER2019) 由于以下原因已代表用户 NT AUTHORITY\SYSTEM 启动计算机 XTKFSERVER2 ...

  10. vue 页面中切换国际语言

    1.npm i vue-i18n 2. 3.main.js 4.vue页面