JMeter:逻辑控制器_模块控制器(Module Controller)

JMeter:逻辑控制器_模块控制器(Module Controller),第1张

模块控制器提供了一种在运行时将测试计划片段替换为当前测试计划的机制,只是导入该测试计划中的测试片段(即:内部的)。

测试计划片段由一个控制器和其中包含的所有测试元素(采样器等)组成。该片段可以位于任何线程组中。如果该片段位于线程组中,则可以禁用其控制器,以防止该片段被模块控制器运行。或者,您可以将片段存储在虚拟线程组中,并禁用整个线程组。

可以有多个片段,每个片段下面都有不同系列的采样器。然后,只需在其下拉框中选择适当的控制器,即可使用模块控制器轻松地在多个测试用例之间切换。这为快速,轻松地运行许多备用测试计划提供了便利。

模块控制器使用的  任何 片段都必须具有唯一的名称 ,因为该名称用于在重新加载测试计划时查找目标控制器。因此,最好确保将控制器名称更改为默认名称,否则当将新元素添加到测试计划中时,可能会意外地创建一个重复名称。

导入测试片段

1、右键单击测试计划,选择添加-〉线程组 在线程组里设置负载信息,即线程属性。我向测试计划中增加相关负载设置是Jmeter需要模拟十个请求者,每个请求者在测试过程中并发请求,并且连续请求10次。 线程数: 10 Ramp-up period(inseconds)

If控制器 允许用户控制其下的测试元素(其子元素)是否运行。

If Controller的主要用途是控制JMeter执行脚本流程。这基本上意味着只有在某个条件为真时才能运行采样器。

添加if控制器: 线程组 >添加 >逻辑控制器 >如果 (if) 控制器

Expression (must evaluate to true or false) : 表达式(值必须是true或false),也就是说,在右边文本框中输入的条件值必须是true 或 false,(默认情况下)

Interpret Condition as Variable Expression?: 默认勾选项,将条件解释为变量表达式(需要使用__jexl3 or __groovy 表达式)【选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)】

Evaluate for all children?: 条件作用于每个子项

注:

1、文本框上的黄色感叹号,就是提示你,建议采用__jexl3 or __groovy 表达式,以提高性能,也就是默认的方式。

2、if 控制器 只能作用于其下的子项

3、jexl全称:Jakarta Commons Jexl,是一种表达式语言(Java Expression Language)解释器。

在if逻辑控制器的Expression中不能直接填写条件表达式,需要借助函数将条件表达式计算为true/false, 可以借助的函数有__jexl3和__groovy函数。

一、默认用法,采用__jexl3 or __groovy 表达式,控制测试脚本执行流程

如下图,if 控制器下两个访问注册页面的取样器,只有if条件满足时,才会执行该取样器。采用默认方式,将条件1==1,放入 __jexl3表达式中。

假设我们有一个带有两个请求采样器的基本脚本:第一个请求采样器位于If控制器之前一步,而第二个采样器位于其中。让我们添加最简单的条件,以验证执行工作流是否按预期工作:

执行请求后,结果

两个请求都被触发,因为我们的If Controller条件(1 == 1)被返回为true。让我们尝试将其设为false并再次验证脚本执行:

修改f Controller条件(1 == 2)

由于我们的新条件(1 == 2),这个位于If Controller内部的请求没有按预期执行,这显然返回为false。

这是If Controller如何允许您控制脚本执行流程的最简单示例。要防止执行脚本的某个部分,请将其嵌套在If Controller下并将条件设置为false。

注: 如果不知道表达式如何使用,可使用Jmeter 的函数助手,如下:

2、条件中使用变量,注意使用的条件语法

在创建条件时,应该验证它们的语法,因为很容易犯错并不容易捕获。让我们创建一个用户定义的变量,我们可以在测试条件中进一步使用它:

使用函数生成的表达式

$ {channerlCode}变量应该包含'应用宝'字符串,我们可能希望创建的线程组将运行我们的两个请求。我们来看看这个:

if控制器里面的请求,没有执行。那是因为我们的条件语法错误。这是If Controller最常见的错误之一。如果要比较两个字符串,则必须在引号中指定它们(即使对于变量也应使用引号)。让我们尝试修复它并再次运行脚本:

通过上面的脚本场景,说明要注意检查条件语法以防止脚本执行失效。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11841316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存