JMeter常用控件二、线程组

摘要:
线程属性线程:模拟加速时间的用户数(秒):JMeter启动所有线程需要多长时间。这些线程的行为与普通线程组元素完全相同。不同的是,这些类型的线程在测试结束后执行常规线程组。ThreadInteractionsLimit:定义每个虚拟用户要运行的迭代次数。达到目标加载数后,继续运行10sFree FormArrivalsThreadGroupStartValue:startvalue,即开始加载的值(单击)。

标签(空格分隔): Jmeter


##线程组

一. 线程组

一个虚拟的用户组,用于模拟一个或多个用户的操作。 线程组定义将对您的服务器执行特定测试用例的用户池。image_1cr1qr7i518jnrgd128199m26f57.png-106.5kB

  • **名称:**线程组的名称,可以为空,填写时需要需要具备实际意义。

  • **注释:**线程的注释,可以为空,填写时需要具备实际意义。

  • 在取样器错误后要执行的动作

  • 继续:如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。

  • 启动下一进程循环:忽略错误,线程当前循环错误,执行下一个循环。

  • 停止线程:只限当前线程停止,不影响其他线程执行。

  • 停止测试:当前执行的线程全部执行完毕后结束。

  • 立即停止测试: 立刻停止。

  • 线程属性

  • 线程数:要模拟用户数量

  • Ramp-Up时间(秒):JMeter需要多长时间才能启动所有线程。如果有10个线程,加速时间为100秒,每个线程将在前一个线程启动后10秒开始,总时间为100秒,以使测试完全达到速度。每秒启动线程数 = 线程数/Ramp-Up时间

  • 例如:这个线程数是3,间隔时间是1,每1/3秒就会启动一个线程;

  • 【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发

  • 循环次数 or永远 :勾选永远,一致循环执行。勾选循环次数,需要在文本框中填写次数
  • 延迟创建线程直到需要:默认不勾选,测试开始的时候,所有线程就被创建完。勾选了此选项,那么线程只会在合适的需要用到的时候创建。
  • 调度器:如果勾选则启用调度器。(可以理解定时器)
    • 持续时间(秒):脚本启动后执行的时间,如果不填线程组将不被执行,如果执行需要的时间>持续时间,执行时间覆盖执行需要的时间
    • 启动延迟(秒):测试计划延迟多久执行。例如16:00启动执行,延迟时间120s,脚本会在16:02执行。界面左上会显示延迟时间。image_1cr1uh4bp1agfp5i7q5qaq1qa561.png-3.9kB

二.setUp线程组

setup Thread Group是所有我们真正开始线程并发之前的准备工作,必须是在线程组开始之前完成的并且拥有自己独立的线程设置;on_start

三.tearDown线程组

一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

四.线程组插件

需要下载插件。

Stepping Thread Group(步进线程组)

该线程组已经废弃,被并发线程组代替

Ultimate Thread Group(专业级线程组)

测试稳定性的时候可以使用,例如:某个接口使用度多少线程,执行***分钟
  • Start Threads Count : 开始线程数量。
  • Initila Delay , sec:线程延迟时间。
  • Statrup Time, sec:线程加载时间()。
  • Hold Load For , sec:线程持续运行多长时间。
  • Shutdown Time:线程停止时长,在多长时间内停止下来

持续加压场景3个组用户,每组各100用户, 10s启动全部用户。从第二个用户组开始,每个用户组迟10秒启动。300个用户持续运行600s后,10s释放全部用户。image_1cr25mspm17d6s2mem18um1ugto.png-94.3kB

间隔加压场景3个用户组,每个各100用户,每个用户组10s启动全部,持续执行60s,10s释放全部用户。

image_1cr3v5o4v9bfs2gb5cm6d126dp.png-141.3kB

Concurrency Thread Group(并发线程组)

  • Target conurrency:目标并发。
  • Ramp Up Time :达到目标的并需要的时间。
  • Ramp-Up Steps Count:达到目标并发的目标的步数。
  • Hold Target Rate Time:达到目标并发后持续运行的时间
  • Time Unit:minutes or seconds。
  • Thread iteerations Limit :线程迭代限制?。
  • Log Threads Status into File:将线程状态记录到文件中

持续并发场景image_1cr413dds1re41l5hkf527a1poj16.png-136.5kB1000个用户,100s加载完成,分5次加载完成,全部加载完成后。持续运行10s后释放全部用户。(每隔20s生成200个用户,运行20s后继续加载200个用户)

Arrivals Thread Group(抵达线程组)

  • Target Rate :需要达到负载用户。
  • Ramp Up Time:达到目标的负载的需要的时间。
  • Ramp-Up Steps Count:达到目标的负载步数(次数)。
  • Hold Target Rate Time:达到目标负载后持续运行的时间。
  • Thread Iterations Limit:定义为每个虚拟用户运行的迭代次数。如果我们只需要运行每个用户一次来模拟用户的真实行为,
  • Log Threads Status into File:将线程状态记录到文件中
  • Concurrency Limit:并发限制,定义了避免内存不足问题的最大虚拟用户数场景目标负载100,20s加载加载完成,分2次加载。达到目标负载数持续运行10simage_1cr4erk6v33e14n0ntb1f2rbe1j.png-139.7kB

Free-Form Arrivals Thread Group(自由抵达线程组)

  • Start Value:开始值,开始的负载(点击数)的值。
  • End Value:结束值,结束时的负载 (点击数)的值。
  • Duration:持续时间。
  • Thread Iterations Limit:定义为每个虚拟用户运行的迭代次数。如果我们只需要运行每个用户一次来模拟用户的真实行为,
  • Log Threads Status into File:将线程状态记录到文件中
  • Concurrency Limit:并发限制,定义了避免内存不足问题的最大虚拟用户数

场景1-10的并发持续运行10秒。 20-60的并发持续运行20秒。 10的并发持续运行10秒。image_1cr75a1j9tfl8821mqf9bk31e9.png-137.6kB

免责声明:文章转载自《JMeter常用控件二、线程组》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇maven的.m2文件夹iOS使用TestFlight进行内部和外部人员测试下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.Net 调式案例—实验4 高CPU(High CPU)回顾

转载: https://www.cnblogs.com/softfair/archive/2008/03/03/dotnet-Debugging-Demos---Lab-4-HighCPU--Review.html   .Net 调式案例—实验4 高CPU(High CPU)回顾   现在开始第四个实验。 前面的案例和设置指导 请参看前面发布的文章。...

JMeter测试clickhouse

使用JMeter对clickhouse连接测试 1、测试计划 jmeter通过JDBC连接数据库需要先引入对应的驱动包,驱动包的版本要与服务器数据库版本一致,我用的驱动版本是:clickhouse-jdbc-0.1.54.jar; 可以将连接数据库相关的驱动直接放到lib目录下(不建议,需要重启JMeter),或者在lib/ext文件夹创建个对应的目录,将...

log4cplus使用(三)-日志重定向

本文讲述的是log4cplus日志输出到qt widget,封装了serverSocket。     log4cplus支持用户自定义输出设备,只需要继承自Appender,或者Appender子类,并实现append成员方法,然后在 log4cplus初始化成功之后,把自定义输出设备添加到logger中,当用户向logger中输出信息时,logger会遍...

http协议多线程文件传输

      HTTP亦即Hpyer Text Transfer Protocal的缩写,它是现代互联网上最重要的一种网络协议,超文本传输协议位于TCP/IP协议的应用层,是一个面向无连接、简单、快速的C/S结构的协议。HTTP的工作过程大体上分连接、请求、响应和断开连接四个步骤。C#语言对HTTP协议提供了良好的支持,在.NET类库中提供了WebReque...

Java多线程——Condition条件

简介 Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的notifyAll()方法。 不同的是,Object中的wait(),notify(),notifyAll()方法是和"同步锁...

Qt线程的简单使用(一)——通过QObject::moveToThread()创建线程

Qt中线程的一种创建方式,就是使用QObject::moveToThread()函数。如下,直接上源代码,可以把费时的任务放到doWork()方法里进行,不阻塞主线程。 1 #ifndef WORKER_H 2 #define WORKER_H 3 4 #include <QObject> 5 6 class Worker : public...