简单的控制器
简单的逻辑控制器可以让你组织你的采样器和其他 逻辑控制器。 不像其他逻辑控制器,该控制器不提供除此之外的功能 存储设备。
参数
“在当前目录。
循环控制器
HTTP请求。
参数
特殊情况: 元素表现略有不同。 除非将永远,停止测试后 给定数量的迭代已经完成。
这个示例(请参见图4)。 在本例中,我们创建了一个测试计划,发送一个特殊的HTTP请求 只有一次和5次发送另一个HTTP请求。
我们配置一个线程的线程组和一个循环数的价值 一个。 而不是让线程组控制循环,我们使用一个循环 控制器。 你可以看到,我们添加了一个HTTP请求线程组 另一个HTTP请求一个循环控制器。 我们配置了循环控制器 循环计数5的价值。
JMeter将按照以下顺序发送请求:主页、新闻页面, 新闻页面、新闻页面、新闻页面,和新闻页面。
“在当前目录。
曾经只有控制器
曾经只有逻辑控制器告诉JMeter处理控制器(s)里面只有一次每个线程,并经过任何请求 在进一步的迭代测试计划。
曾经只有控制器将执行总是在第一次迭代的循环父控制器。 因此,如果一旦只有控制器放置在一个循环控制器指定循环5次,那么一次只在第一个迭代通过控制器将只执行循环控制器 (即每5次)。
注意这意味着一次只控制器仍然会像此前预期,如果把在一个线程组(每个测试每个线程只运行一次), 但是现在用户更灵活地使用一只控制器。
对于测试,需要一个登录,请考虑将登录请求的控制器,因为每个线程只需要 建立一个会话登录一次。
在本例中,我们创建了一个测试计划,有两个线程发送HTTP请求。 每个线程发送一个请求到主页,紧随其后的是三个请求到错误页面。 虽然我们配置了线程组三次迭代,每个JMeter线程 发送一个请求到主页,因为这请求住在一个曾经只有控制器。
每个JMeter线程将按照以下顺序发送请求:主页,错误页面, 错误页面,页面错误。
“在当前目录。
交错的控制器
如果你添加生成或逻辑控制器一个交错控制器,JMeter将每个之间的交替 为每个循环迭代其他控制器。
这个示例(请参见图1)。在这个例子中, 我们配置线程组有两个线程,一个循环计数的五个,总共十个 每个线程的请求。 见下表顺序JMeter发送HTTP请求。
| 循环迭代 | 每个JMeter线程发送HTTP请求 |
|---|---|
| 1 | 新闻页面 |
| 1 | 日志页面 |
| 2 | 常见问题页面 |
| 2 | 日志页面 |
| 3 | 阿甘的页面 |
| 3 | 日志页面 |
| 4 | JMeter开始发送第一个HTTP请求,这是新闻页面。 |
| 4 | 日志页面 |
| 5 | 常见问题页面 |
| 5 | 日志页面 |
另一个例子(参见图2),在这 例子中,我们配置了线程组 单个线程和8的循环计数。 注意,测试计划有一个外交错控制器 两个交错控制器内。
外交错控制器之间的交替 两个内在的品质。 然后,每个内部交错控制器之间交替的每个HTTP请求。 每一个JMeter 线程将按照以下顺序发送请求:主页,交错,错误页面,交错,CVS页面,交错,FAQ页,交错。
“在当前目录。
如果两个交错控制器主要交错控制器下而不是简单的控制器,然后顺序是:主页,CVS页面,交错,错误页面,FAQ页面,交错。
“检查主要交错控制器,然后顺序是:主页,交错,错误页面,交错,CVS页面,交错,FAQ页,交错。
随机的控制器
随机逻辑控制器行为类似于交错控制器,除了 而不是为了通过其sub-controllers和取样器,它选择 随机在每个通过。
参数
随机顺序控制器
随机顺序控制器就像一个简单的控制器,它将执行每个孩子 元素最多一次,但节点的执行顺序是随机的。
参数
流量控制器
这个控制器是严重的命名,因为它不能控制的吞吐量。 为一个元素,可以用来调整吞吐量。
流量控制器允许用户控制执行的频率。 总共有两种模式-百分比执行和执行。
- 百分比执行
- 使控制器执行一定比例的迭代测试计划。
- 总执行
- 使控制器停止执行一定数量的处决后发生。
像一只控制器,这个 当父母循环控制器启动时设置重置。
参数
运行时控制器
运行时控制器控制它的孩子被允许运行多久。
参数
if控制器
如果控制器允许用户控制是否它下面的测试元素(孩子)运行。
默认情况下,这个条件是评估初始入口只有一次,但你可以选择把它用来评估每一个可运行的元素包含在控制器。
”或者记录一个错误。
"${myVar}" == "\${myVar}"
或者使用:
"${myVar}" != "\${myVar}"
为了测试定义一个变量,而不是null。
- $ {数} < 10
- (检查最后的样品是否成功)
- $ { __jexl($ {数} < 10)}
- $ {结果}
而控制器
”。
可能的条件值:
- 空白——最后一个示例循环失败时退出循环
- ——最后一个示例循环失败时退出循环。 如果之前的最后一个示例只是循环失败,不进入循环。
- ”
例如:
- 是由其他测试元素设置为假
- $ { __javaScript($ { C } = = 10)}
- “别的地方
开关控制器
在它运行的一个下属元素在每一次迭代,而是比 按顺序运行,控制器运行开关定义的元素的值。
如果开关值的范围,它将运行第0个元素, 因此作为默认的数值例子。 它也运行如果第0个元素值是空字符串。
”(不重要)被选中。 如果没有违约,然后没有元素被选中时,控制器将不运行任何东西。
ForEach控制器
应该定义以下变量:
- inputVar_1 =温迪
- 查尔斯inputVar_2 =
- inputVar_3 =彼得
- inputVar_4 =约翰
“现在分隔符是可选的。
连续两次, 返回变量有各自的价值观之上,然后可以用于采样。
是一个计数器变量。
我们配置一个线程的线程组和一个循环数的价值 一个。 你可以看到,我们添加了一个HTTP请求线程组 另一个HTTP请求ForEach控制器。
变量
在ForEach循环中,HTTP取样器添加哪些请求所有的链接都从第一个返回的HTML页面。
你可以下载。 这有两个正则表达式和ForEach控制器。 第一个匹配,但第二个不匹配, 所以没有样品是由第二个ForEach控制器
线程组有一个单线程和一个循环计数两种。
”。
”。
”。
“样品标签的一部分 随着取样器的数据。
取样器将不会运行。
模块控制器
模块控制器提供了一种机制来代替测试计划片段到当前测试计划在运行时。
。 如果片段位于线程组,则可以禁用其控制器,防止正在运行的片段 除了模块控制器。 或者你可以将片段存储在一个虚拟线程组,和禁用整个线程组。
可以有多个片段,每一个都有不同的系列 取样器。 该模块控制器可以用于轻松切换这些只需选择多个测试用例 适当的控制器的下拉框。 这提供了方便快速、轻松地运行许多替代测试计划。
一个片段的名称是由控制器名称及其父母的名字。 例如:
Test Plan / Protocol: JDBC / Control / Interleave Controller (Module1)
, 正如它的名字被用来找到目标控制器测试计划时重新加载。 出于这个原因,最好确保控制器从默认的名字是改变 -如上面的例子所示 否则重复可能意外时创建新元素添加到测试计划中。
包括控制器
包括控制器被设计成使用一个外部jmx文件。 使用它,创建一个测试片段 下面的测试计划和添加任何所需的取样器,控制器等。 然后保存测试计划。 文件现在可以包含其他测试计划的一部分。
期间将被忽略 包括过程。
如果测试使用Cookie经理或用户定义的变量,这些应放置在顶层 测试计划,包括文件,否则不能保证工作。
相对于JMX启动目录。
事务控制器
事务控制器产生一个额外的 的样品的总时间采取措施执行嵌套的测试元素。
有两种操作模式:
- 添加额外的样品后,嵌套的样品
- 添加额外的样品作为父母的嵌套的样品
”检查。 根据时钟分辨率,它可能略微超过个体采样+计时器的总和。 时钟可能蜱虫后控制器记录开始时间之前第一个示例开始。 最后同样。
生成的示例仅仅是如果所有使成功视为成功。
在家长模式中,单个样品仍然可以看到在树视图中侦听器, 但不再作为单独的条目出现在其他听众。 同时,使没有出现在CSV日志文件,但他们可以保存到XML文件。
记录控制器
默认情况下,所有记录样品 被保存在录音控制器。
临界段控制器
临界段控制器确保其子元素(取样器/控制器等)将被执行 只有一个线程作为一个名叫锁将在执行之前的控制器。
下图显示了一个示例使用临界区控制器,控制器确保下图2中至关重要的部分 :
- 一次只有一个线程执行吗
- 一次只有一个线程执行吗