Throughput Contoller,直译是吞吐量控制器,它是用来控制该控制器下面元件的执行次数,与控制吞吐量的功能无关。(注:用Constant Throughput Timer可以控制吞吐量。)

Throughput Contoller有两种模式:Total ExecutionsPercent Executions

参数说明如下:

  • Total Executions:按吞吐量值来指定执行次数。选择此模式,吞吐量值的单位为“次”。
  • Percent Executions:按百分比来指定执行次数。选择此模式,吞吐量值的单位为“%”。
  • 吞吐量:该值可以是任意整数,如果小于等于0,则一次也不执行。
  • Per User:如果勾选该项则按虚拟用户数(线程数)来计算执行次数,如果没有选中该项则按所有虚拟用户数来计算执行次数。

那么如何计算Throughput Controller其下的执行次数?

下面添加循环控制器,在Throughput Controller下添加Debug Sampler元件来做实验:

实验一:测试按Percent Executions模式执行次数

TestCase1:线程数3,线程循环次数2,循环控制器循环次数2,吞吐量值50%,勾选Per User

测试结果:查看“聚合报告”里Debug Sampler执行次数,Debug Sampler=6,即执行了6次,如图:

TestCase2:线程数3,线程循环次数2,循环控制器循环次数2,吞吐量值50%,不勾选Per User

测试结果,查看“聚合报告”里Debug Sampler执行次数,Debug Sampler=6,即执行了6次,如图:

TestCase1与TestCase2测试结果对比表:

线程数

线程组循环次数

控制器循环次数

模式

吞吐量值

Per User

执行次数

3

2

2

Percent Executions

50

勾选

6

3

2

2

Percent Executions

50

不勾选

6

由此,得出结论:

无论Per User是否勾选,按Percent Executions模式的执行次数都不受Per User影响,Percent Executions模式的执行次数=线程数*循环次数*吞吐量%。

PS:循环次数=线程组循环次数*循环控制器循环次数。

实验二:测试按Total Executions模式执行次数

同样,按照实验一的初始条件不变:线程数3,线程循环次数2,循环控制器循环次数2,然后改变吞吐量值和是否勾选Per User来做实验。

测试的实验结果如下表:

线程数

线程组循环次数

控制器循环次数

模式

吞吐量值

Per User

执行次数

3

2

2

Total Executions

13

勾选

12

3

2

2

Total Executions

13

不勾选

12

3

2

2

Total Executions

12

勾选

12

3

2

2

Total Executions

12

不勾选

12

3

2

2

Total Executions

11

勾选

12

3

2

2

Total Executions

11

不勾选

11

3

2

2

Total Executions

10

勾选

12

3

2

2

Total Executions

10

不勾选

10

3

2

2

Total Executions

5

勾选

12

3

2

2

Total Executions

5

不勾选

5

3

2

2

Total Executions

4

勾选

12

3

2

2

Total Executions

4

不勾选

4

3

2

2

Total Executions

3

勾选

9

3

2

2

Total Executions

3

不勾选

3

3

2

2

Total Executions

2

勾选

6

3

2

2

Total Executions

2

不勾选

2

 分析数据,得出结论:

  • 当勾选Per User时:
  1. 线程数*循环次数>=线程数*吞吐量时,Total Executions模式的执行次数=线程数*吞吐量。
  2. 当线程数*循环次数<线程数*吞吐量时,Total Executions模式的执行次数=当线程数*循环次数。
  • 当不勾选Per User时:
  1. 线程数*循环次数<=吞吐量时,Total Executions模式的执行次数=线程数*循环次数。
  2. 当线程数*循环次数>吞吐量时,Total Executions模式的执行次数=吞吐量。

JMeter之Throughput Controller详解(实验)的更多相关文章

  1. jmeter 逻辑控制器Logic Controller详解

    Jmeter之逻辑控制器(Logic Controller) 前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in w ...

  2. jmeter之Throughput Controller

    jmeter之Throughput Controller Throughput Controller 这个控制器的命名不准确,因为它不是用来控制吞吐量的.吞吐量控制器允许用户控制执行频率,jmeter ...

  3. Asp.Net MVC part2 View、Controller详解

    View详解Razor视图引擎简介HtmlHelper强类型页面 Razor视图引擎简介强大的@:表示使用C#代码,相当于aspx中的<%%>可以完成输出功能当遇到html标签时会认为C# ...

  4. Jmeter 正则表达式提取器详解(Regular Expression Exactor)

    Jmeter 正则表达式提取器详解(Regular Expression Exactor) Name(名称):随意设置,最好有业务意义. Comments(注释):随意设置,可以为空 Apply to ...

  5. Jmeter(九) - 从入门到精通 - JMeter逻辑控制器 - 上篇(详解教程)

    1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...

  6. Jmeter(十) - 从入门到精通 - JMeter逻辑控制器 - 中篇(详解教程)

    1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...

  7. Jmeter(十一) - 从入门到精通 - JMeter逻辑控制器 - 下篇(详解教程)

    1.简介 Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”. 意思 ...

  8. Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)

    1.简介 监听器用来监听及显示JMeter取样器测试结果,能够以树.表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式.CSV格式.默认情况下,测 ...

  9. 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解

    目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...

随机推荐

  1. ActiveMQ 503错误

    问题描述: 在Linux系统下安装ActiveMQ,启动服务 正常启动后,通过浏览器进行访问 可以正常显示home页面,但是点击其他菜单,如Queues,Topics等,都会出现503错误,如图 问题 ...

  2. Linux下mysql远程连接问题

    [旧博客转移 - 发布于2015年9月6日 18:42]   在Linux上装好Mysql后 发现远程客户端连接不上 出现这种情况是因为mysql服务器出于安全考虑,默认只允许本地登录数据库服务器. ...

  3. Java读取property配置文件

    读取配置文件已经成了Java程序员工作的一项必备技能. 配置文件的优点: 可维护性好 怎么个可维护性好呢? 它会让程序中变化的地方很灵活的配置,不需要修改代码. Java程序部署到服务器上去之后就变成 ...

  4. HDU 1325,POJ 1308 Is It A Tree

    HDU认为1>2,3>2不是树,POJ认为是,而Virtual Judge上引用的是POJ数据这就是唯一的区别....(因为这个瞎折腾了半天) 此题因为是为了熟悉并查集而刷,其实想了下其实 ...

  5. Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了

    Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了 >>>>>>>>>>>>>>> ...

  6. Html table 合并单元格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. anaconda 下多版本Python 安装说明

    网上针对多版本的Python兼容安装的文章逐渐增多,都是大家在实践中总结的经验.本人的安装经过几次的反复实验还是觉得其中一种更为方便. 有人的安装方法是: 1. 先安装一个版本的python(一般先安 ...

  8. [luogu]P1379 八数码难题[广度优先搜索]

    八数码难题 ——!x^n+y^n=z^n 我在此只说明此题的一种用BFS的方法,因为本人也是初学,勉勉强强写了一个单向的BFS,据说最快的是IDA*(然而蒟蒻我不会…) 各位如果想用IDA*的可以看看 ...

  9. node 控制 树莓派做的天气闹钟

    node 控制 树莓派做的天气闹钟 在成都上班,下雨天堵车,迟到的概率会很大. 正好手上有一块树莓派 ,做了一个晴雨闹钟. 下雨天 早上 7:00叫我起床 晴天 早上 7:30叫我起床 将自己喜欢的歌 ...

  10. 有关struts中DispatchAction的用法小结

       今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...