浅谈逻辑控制器之Include控制器

浅谈逻辑控制器之Include控制器

"Include控制器"是一个特别实用的功能,它允许用户将一个或多个测试片段(通常是请求)包含到不同的测试计划或模块中,从而实现代码的复用和测试结构的优化。本文档将详细介绍JMeter中的Include控制器及其使用方法。

什么是Include控制器?

Include控制器允许测试人员从外部文件引用测试片段(.jmx文件),并将这些片段的内容合并到当前测试计划中。这意味着你可以创建通用的请求集合(如登录流程、特定API调用等),然后在不同的测试场景中重复使用,而无需复制粘贴这些请求。这种方式提高了测试脚本的维护性和灵活性。

使用场景

● 代码复用:当你有多个测试计划需要执行相同的请求序列时,可以将这些请求放在一个单独的.jmx文件中,并通过Include控制器引用,避免重复编写相同的测试步骤。

● 模块化测试:将测试计划分解为逻辑模块(如登录模块、搜索模块等),每个模块作为一个独立的.jmx文件,通过Include控制器集成到主测试计划中,便于管理和维护。

● 灵活配置:在不同的测试环境中,可能需要调整某些请求的配置(如服务器地址)。通过将这些配置敏感的部分抽离到外部文件,可以在不修改主测试计划的情况下快速适应环境变化。

如何使用Include控制器

步骤1:准备被包含的测试片段

  1. 首先,在JMeter中创建一个新的测试计划或打开现有的测试计划。
  2. 设计并保存你需要复用的测试片段到一个.jmx文件中。这可以是简单的HTTP请求、事务控制器、循环控制器等任何组合。
    步骤2:在目标测试计划中添加Include控制器
  3. 打开你希望包含上述测试片段的JMeter测试计划。
  4. 右键点击测试计划的相应位置(如测试计划根节点、线程组内),选择"添加" > "逻辑控制器" > "Include Controller"。
  5. 给Include控制器命名,以便于识别其用途。
    步骤3:指定包含的文件
  6. 在Include控制器的属性中,找到"文件名"字段。
  7. 输入或浏览你想要包含的.jmx文件的路径。如果要包含多个文件,可以使用逗号分隔文件路径。
    步骤4:验证与运行
  8. 确认所有包含的文件路径正确无误。
  9. 保存测试计划。
  10. 运行测试计划,确保Include控制器成功加载并执行了指定的测试片段。

实例说明

所有我们编写两个JMeter脚本,其中脚本1内容如下:

其中BeanShell取样器1内容如下:

java 复制代码
log.info("测试片段1");

其中BeanShell取样器2内容如下:

java 复制代码
log.info("测试片段2");

其中BeanShell取样器3内容如下:

java 复制代码
log.info("测试片段3");

其他参数默认。

该脚本保存路基为D:\test.jmx

脚本2内容如下:

Include控制器:Include Test Plan中文件名配置为D:\test.jmx

其中BeanShell取样器4内容如下:

java 复制代码
log.info("测试");

运行脚本,我们可以从JMeter日志中看到如下结果

2024-06-25 14:52:57,075 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1

2024-06-25 14:52:57,075 INFO o.a.j.u.BeanShellTestElement: 测试片段1

2024-06-25 14:52:57,075 INFO o.a.j.u.BeanShellTestElement: 测试片段2

2024-06-25 14:52:57,075 INFO o.a.j.u.BeanShellTestElement: 测试

2024-06-25 14:52:57,075 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1

上述打印信息可以了解,被引用的test.jmx脚本只运行测试片段中的内容。

注意事项

● 路径问题:确保指定的文件路径是相对于JMeter启动目录的绝对路径或相对路径,否则可能会导致找不到文件的错误。

● 资源管理:被引用的.jmx文件应当保持简洁、专注于特定功能,便于维护和复用。

● 变量与函数:在被包含的文件中使用变量和函数时,要注意它们的上下文环境,确保变量能够正确解析。

结语

Include控制器是提升JMeter测试脚本可维护性和灵活性的有效工具。通过合理利用此功能,测试工程师可以更加高效地组织和管理复杂的测试场景,同时保证测试代码的整洁和一致性。掌握Include控制器的使用,将使你的性能测试工作事半功倍。

相关推荐
茶馆大橘9 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
土小帽软件测试15 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
土小帽软件测试20 小时前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
紫晓宁21 小时前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible
黑色叉腰丶大魔王1 天前
《通过 Jmeter 压测存储过程详解》
jmeter
hai405871 天前
基于python主观题自动阅卷系统毕业设计项目
spring boot·python·jmeter·django·make与makefile
程序员小雷2 天前
应对自动化测试中的异步操作:策略与实践
功能测试·selenium·测试工具·jmeter·单元测试·测试用例·postman
奔波儿灞爱霸波尔奔2 天前
JMeter与大模型融合应用之jmeter.properties配置文件新增配置
jmeter
叮当喵是mao2 天前
接口测试(十)jmeter——关联(正则表达式提取器)
jmeter·正则表达式
开水好喝2 天前
JMeter快速造数之数据导入导出
jmeter