浅谈逻辑控制器之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控制器的使用,将使你的性能测试工作事半功倍。

相关推荐
Betray39111 小时前
Jmeter关联,断言,参数化
jmeter·接口测试
java_jane11 小时前
W39-02-jmeter中如何实现:下一个请求是需要根据前一个请求返回值进行循环请求
jmeter
程序员雷子12 小时前
接口自动化测试数据怎么来?涉及资金的接口如何在线上回归?
功能测试·selenium·测试工具·jmeter·单元测试·测试用例·postman
回家吃月饼1 天前
jmeter本身常用性能优化方法
jmeter·性能优化
奔波儿灞爱霸波尔奔2 天前
JMeter与大模型融合应用之开篇
人工智能·jmeter
qq_433716952 天前
使用Postman搞定各种接口token实战
自动化测试·软件测试·测试工具·jmeter·web安全·压力测试·postman
可遇_不可求3 天前
探索JMeterTools:一个Python驱动的JMeter脚本生成器
开发语言·python·jmeter
Betray3913 天前
Jmeter的使用方法
jmeter·接口测试
二喵❥(^_-)3 天前
jmeter-请求参数加密-MD5加密
jmeter
MJH8274 天前
JMeter全流程性能测试实战!
自动化测试·功能测试·jmeter·单元测试·appium·性能测试·测试工程师