浅谈逻辑控制器之模块控制器

浅谈逻辑控制器之模块控制器

模块控制器(Module Controller)是一种高级逻辑控制器,它提供了一个强大的机制来复用和组织测试计划中的组件。本文档将深入介绍模块控制器的功能、配置方法及其应用场景。

功能概述

模块控制器允许用户在测试计划中引用另一个测试片段(通常是一个简单的控制器或组合控制器下的测试结构),并在运行时动态地插入这些片段到当前执行路径中。这意味着你可以创建通用的测试模块,并根据需要在不同的位置多次重用它们,从而简化维护并提高测试计划的灵活性。

使用场景

● 测试片段复用:当你有一个复杂的请求序列需要在多个地方执行时,可以将其封装为一个模块,然后通过模块控制器引用,避免重复编写相同的测试步骤。
● 条件执行:结合其他逻辑控制器(如If Controller),可以根据条件决定是否执行特定的模块。
● 参数化测试:通过结合用户定义的变量或CSV数据集控制器,模块控制器可以针对不同的数据集执行相同的测试逻辑。
● 测试计划结构优化:模块化设计有助于保持测试计划的清晰和可维护性,特别是在大型复杂的性能测试项目中。

配置步骤

  1. 创建测试片段:
    ○ 在测试计划中,选择或创建一个线程组。
    ○ 右键点击线程组,选择“添加” > “逻辑控制器” > “简单控制器”(或其他控制器作为模块容器)。
    ○ 在这个新控制器下,添加你需要复用的采样器、前置处理器、后置处理器等测试元素。
  2. 保存测试片段(可选):
    ○ 如果希望将此模块独立保存以便在其他测试计划中复用,可以通过“另存为测试片段”功能进行保存。
  3. 添加模块控制器:
    ○ 在你想要插入模块的地方,右键点击相应的逻辑控制器或线程组,选择“添加” > “逻辑控制器” > “模块控制器”。
  4. 配置模块控制器:
    ○ 在模块控制器属性中,指定要引用的测试片段名称。这应该是之前创建的简单控制器或其他控制器的名称。

应用实例

我们编写如下脚本
在这里插入图片描述
线程组:保持默认
BeanShell 取样器1:编写如下代码

log.info("test1");

BeanShell 取样器2:编写如下代码

log.info("test2");

模块控制器:选择简单控制器2

运行脚本后,可以看到JMeter日志内容如下

2024-06-28 17:29:19,798 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2024-06-28 17:29:19,799 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-28 17:29:19,800 INFO o.a.j.u.BeanShellTestElement: test2
2024-06-28 17:29:19,800 INFO o.a.j.u.BeanShellTestElement: test2
2024-06-28 17:29:19,801 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1

可以看到简单控制器2下面的BeanShell 取样器2执行了两次。

注意事项

● 确保模块控制器引用的测试片段存在于同一测试计划中,或者已经作为测试片段被正确导入。
● 模块控制器不会传递其上级作用域内的变量或配置给被引用的模块,除非这些变量是全局的。
● 模块控制器执行时不改变当前线程的上下文,因此采样器的执行结果如同直接在当前线程组内一样。

总结

模块控制器是JMeter中实现测试计划模块化和复用的关键工具。通过熟练应用模块控制器,测试工程师可以构建更加高效、灵活且易于维护的性能测试方案。掌握其使用方法对于提升测试效率和质量至关重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔波儿灞爱霸波尔奔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值