首页 > 其他分享 >浅谈逻辑控制器之模块控制器

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

时间:2024-07-03 10:00:26浏览次数:19  
标签:测试计划 控制器 浅谈 模块 片段 线程 测试

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

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

标签:测试计划,控制器,浅谈,模块,片段,线程,测试
From: https://blog.csdn.net/u012151594/article/details/140092791

相关文章

  • 555、基于51单片机的汽车灯控制器设计(刹车、倒车、雾霾)
    完整资料或定制滴滴我(有偿)见文末。目录一、设计功能二、Proteus仿真三、原理图四、程序源码五、资料包括一、设计功能汽车灯控制器设计要求:1、汽车车尾左右两侧各有四盏灯:黄灯、红灯、雾灯、倒车照明灯,前面有照明灯(远光、近光)、黄灯、雾灯2、白天正常行驶时照......
  • YOLOv8改进 | 卷积模块 | 减少冗余计算和内存访问的PConv【CVPR2023】
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 ......
  • Arduino 驱动烟雾传感器模块
    以下是使用ArduinoUnoR3驱动烟雾传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3烟雾传感器模块(例如MQ-2)面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到烟雾传感器模块的VCC引脚。将ArduinoUno的GND引脚连接到烟雾传感器模块......
  • Arduino 驱动火焰传感器模块
    以下是使用ArduinoUnoR3驱动火焰传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3火焰传感器模块面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到火焰传感器模块的VCC引脚。将ArduinoUno的GND引脚连接到火焰传感器模块的GND引......
  • Arduino 驱动模拟温度传感器模块
    以下是使用ArduinoUnoR3驱动模拟温度传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3模拟温度传感器模块(例如LM35)面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到模拟温度传感器模块的VCC引脚。将ArduinoUno的GND引脚连接到模......
  • Arduino 驱动光敏电阻传感器模块
    以下是使用ArduinoUnoR3驱动光敏电阻(光敏电阻器)传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3光敏电阻传感器模块10kΩ电阻(用于电压分压,可选)面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到光敏电阻传感器模块的VCC引脚。将......
  • Arduino 驱动声音传感器模块
    以下是使用ArduinoUnoR3驱动声音传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3声音传感器模块(例如KY-038)面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到声音传感器模块的VCC引脚。将ArduinoUno的GND引脚连接到声音传感器模......
  • Arduino 驱动 电位器(可变电阻)传感器模块
    以下是使用ArduinoUnoR3驱动电位器(可变电阻)传感器模块的详细说明、接线图和代码示例。电位器的位置值为:0-1023。所需材料ArduinoUnoR3电位器(可变电阻)传感器模块面包板和连接线接线步骤连接电位器:将电位器的中间引脚(通常是滑动引脚)连接到ArduinoUno的模拟引脚A0。......
  • Arduino 驱动震动模块传感器
    使用ArduinoUnoR3驱动震动传感器模块的详细说明、接线图和代码示例。所需材料ArduinoUnoR3震动传感器模块面包板和连接线接线步骤供电和地线连接:将ArduinoUno的5V引脚连接到震动传感器模块的VCC引脚。将ArduinoUno的GND引脚连接到震动传感器模块的GND引脚。......
  • 使用nodejs ws模块连接websocket服务器Unexpected response code: 403错误解决
    使用浏览器连接websocket服务器时一切正常,但是使用nodejs ws模块连接时一直报Unexpectedresponsecode:403错误,查了很多帖子都没说明白,最后自己试着一点一点对比模拟浏览器请求头,最终解决问题,解决后代码如下://TODO不加这个,会报403错误constoptions={headers:{......