jmeter不同线程组的详解

在做性能测试之前,我们来了解一下JMeter多个不同线程组的应用。首先,JMeter提供了三个基本的线程组,分别为:

  • Thread Group
  • setUp Thread Group
  • tearDown Thread Group

其他线程组可以通过集成插件的方式使用,包括:

  • bzm - Arrivals Thread Group
  • bzm - Concurrency Thread Group
  • bzm - Free-Form Arrivals Thread Group
  • jp@gc - Stepping Thread Group
  • jp@gc - Ultimate Thread Group

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

1、Thread Group、setUp Thread Group和tearDown Thread Group

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

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

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

以上,setUp Thread Group和tearDown Thread Group分别在测试前后执行;例如,在我们在执行压力测试前后,我们可以把登录操作放在setUp Thread Group,测试结束后将注销操作放在tearDown Thread Group;

详细说明如下图所示:

采样器执行出错之后如何处理:

continue:继续执行

start next thread loop:开始下一个循环

stop thread:停止当前线程

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

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

线程属性:

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

ramp-up period:达到指定线程需要的时间,即在该时间范围内达到设定的线程数

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

调度器设置:

duration:压测持续时间

startup delay:启动延迟时间,即点击启动后在该时间之后才正式开始测试

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类似,不过是通过设置起始值、终止值和持续时间来达到压测目的。而且可以设置多个线程的集合。

文章属于转载

来源链接:https://blog.csdn.net/sinat_32434273/article/details/81119516

JMeter性能测试入门-不同类型线程组的使用的更多相关文章

  1. Jmeter性能测试入门(转)

    出处:http://www.cnblogs.com/by-dream/p/5611555.html Jmeter性能测试步骤 1. 添加线程组之后,先设置这两项: 2. 添加一个http请求 被测的u ...

  2. 【转载】Jmeter 性能测试入门

    [转载]Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...

  3. Jmeter性能测试 入门--转载

    转载: Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...

  4. Jmeter性能测试 入门【转】

    Jmeter性能测试 入门[转] Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter ...

  5. Jmeter性能测试入门(链接收藏)

    Jmeter性能测试入门: http://www.cnblogs.com/TankXiao/p/4045439.html

  6. JMeter性能测试入门--偏重工具的使用

    1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...

  7. JMeter性能测试入门--简单使用

    1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...

  8. Jmeter性能测试 入门

    Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadR ...

  9. jmeter性能测试入门

    1.jmeter介绍2.jmeter变量环境部署3.jmeter目录结构4.jmeter  Gui模式5.jmeter 非Gui模式6.jmeter 录制完显示乱码设置7.jmeter 结果分析 1. ...

随机推荐

  1. error: undefined reference to `cv::imread(std::string const&, int)'

    g++ main.cpp -o main `pkg-config --libs --cflags opencv`注意--libs的位置https://stackoverflow.com/questio ...

  2. vim比较文件

    横向分割显示: $ vim -o filename1 filename2 纵向分割显示: $ vim -O filename1 filename2 ctl w w 切换文件

  3. ztree 获取CheckBox选中节点时,不获取选中上级父节点

    //将第三个参数改为false,表示不去勾选父节点下的所有子节点 zTreeObj.checkNode(node, true, false); setting.check.chkboxType = { ...

  4. Django【第1篇】:Django之MTV模型

    Django框架第一篇基础 一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model ...

  5. JVM---对象访问

  6. HTML中表格table标签的实例

    一.表格有边框,第一行居中对齐 二.表格没有边框 三.表格有水平标题 四.表格有垂直标题 五.合并行单元格 colspan合并单元格 六.表格有单元格边距(内边距) 七.表格没有单元格间距 八.表格有 ...

  7. 13 Spring Boot Shiro使用JS-CSS-IMG

    filterChainMap.put("/403", "anon");filterChainMap.put("/assets/**", &q ...

  8. 跳转控制语句continue

    1 continue的使用场景: 1.1 在循环语句中 注意:离开使用场景的存在是没有意义的 2 continue的作用: 2.1 单层循环对比break,然后总结两者的区别 2.1.1 break ...

  9. Comet OJ - Contest #6 D. 另一道树题 并查集 + 思维 + 计数

    Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vecto ...

  10. webstorm主题更换和webstorm汉化

    主题更换方式一 主题类型:*.jar 在webstorm程序中选择 : 菜单栏 File -> Setting ->Import Settings  选中下载的.jar文件 主题更换方式二 ...