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

news2024/10/6 22:31:11

浅谈逻辑控制器之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内容如下:

log.info("测试片段1");

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

log.info("测试片段2");

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

log.info("测试片段3");

其他参数默认。
该脚本保存路基为D:\test.jmx
脚本2内容如下:
在这里插入图片描述
Include控制器:Include Test Plan中文件名配置为D:\test.jmx
其中BeanShell取样器4内容如下:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并发编程-02深入理解Java线程

一 线程基础知识 1.1 理解线程和进程 进程和线程的概念: 进程: 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指…

Gobject tutorial 十

参考:GLib – 2.0: The Main Event Loop The Main Event Loop 主事件循环管理所有可用的事件源,事件可以是各种类型、各种数量的。比如说文件描述符(普通文件、管道以及套接字)和超时。 新类型的事件源可以通过函数g_source_attach来添加。为了使多个…

输入/输出文字

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在海龟绘图中,也可以输入或者输出文字,下面分别进行介绍。 1 输出文字 输出文字可以使用write()方法来实现,语…

【QCustomPlot实战系列】QCPGraph区域高亮

使用QCPDataSelection来设置选中的区域&#xff0c;并将QCPGraph的可选择区域设置成QCP::stMultipleDataRanges void AreaPieces::initCustomPlot(QCustomPlot *parentPlot) {QVector<double> x {0, 1, 2, 3, 4, 5, 6, 7, 8};QVector<double> y {200, 560, 750…

解决Vue+Vite打包后Leaflet的marker图标不显示的问题

前言 用Leaflet写关于WebGIS的开发&#xff0c;用Vite或者webpack打包&#xff0c;打包后会找不到图标&#xff0c;如下所示。 直言的说&#xff0c;笔者去网上搜了搜&#xff0c;其实收到一个比较好是答案。网址如下。 &#xff08;完美解决~&#xff09;关于VueLeaflet添加…

P2实验室装修标准都有哪些

P2实验室&#xff08;也称为生物安全二级实验室&#xff0c;BSL-2实验室&#xff09;的装修标准需要满足一系列的设计和施工要求&#xff0c;以确保实验室的安全性和功能性。因此&#xff0c;P2实验室装修标准不仅要满足一般实验室的要求&#xff0c;还需符合生物安全的特殊规定…

企业运维六边形战士 质量稳定 效率为王

随着信息化的不断深入和扩展&#xff0c;企业IT系统的复杂性和设备多样性日益增加。为了保障业务的高可用性和连续性&#xff0c;企业需要一个全面、高效、智能的一体化运维管理平台。在用户市场的推动下&#xff0c;LinkSLA智能运维管家展现出【六边形战士】的优质属性&#x…

数据结构-----【链表:刷题】

-------------------------------------------基础题参照leetcode---------------------------------------------------------------------------------------------------------- 【2】两数相加 /*** Definition for singly-linked list.* struct ListNode {* int val;…

ChatBI开源实现: 基于SuperSonic的AI+BI的产品设计

产品起源 为什么要做这样的产品&#xff1f;文章《ChatBI开源实现: AIBI的产品设计》中有介绍 为什么要自己做这样的产品&#xff1f;1、低成本试错&#xff1b;2、未来数据生态入口&#xff1b; 为什么要基于Supersonic做&#xff1f; 开源协议友好&#xff1a;可魔改商用 社区…

仿真分析 + AI:创建基础设施的新未来

吴付标 大漠风电&#xff0c;深远海平台&#xff0c;一带一路上的高铁、电站…… 在新一轮的基础设施建设浪潮中&#xff0c;项目与结构变得越来越复杂&#xff0c;碳中和与可持续发展的要求越来越高&#xff0c;仿真分析技术应运而兴。 在最近召开的Bentley软件2024创新智旅 …

【Python/Pytorch - 网络模型】-- 高阶SVD算法

文章目录 文章目录 00 写在前面01 基于Python版本的高阶SVD算代码02 HOSVD 的步骤 00 写在前面 高阶奇异值分解&#xff08;Higher-Order SVD&#xff0c;HOSVD&#xff09;是一种将传统的奇异值分解&#xff08;SVD&#xff09;扩展到高阶张量的方法。它能够将一个高阶张量分…

FileNotFoundError: Cannot find DGL C++ graphbolt library at ...

FileNotFoundError: Cannot find DGL C graphbolt library at ...-CSDN博客https://blog.csdn.net/weixin_44017989/article/details/137658749

SAP ABAP 之OOALV

文章目录 前言一、案例介绍/笔者需求二、SE24 查看类 a.基本属性 Properties b.接口 Interfaces c.友元 Friends d.属性 Attributes e.方法 Methods f.事件 Events g.局部类型 Types …

韩顺平0基础学java——第31天

p612-637 IO流 IO流原理及流的分类 Java lO流原理 1.I/O是Input/Output的缩弓&#xff0c;IV/O技术是非常实用的技术&#xff0c;用于处理数据传输。 如读/写文件&#xff0c;网络通讯等。 2. Java程序中&#xff0c;对于数据的输入/输出操作以”流(stream)”的方式进行。 3…

Orangepi Zero2 全志H616 的初识

目录 一、全志H616简介 1.1 为什么学&#xff1a; 1.2 学什么&#xff1a; 1.3 全志H616平台介绍&#xff1a; 二、刷机 系统启动和初始化配置 2.1 需要的工具&#xff1a; 2.2 工具安装&#xff1a; 2.3 刷机&#xff1a; 2.4 登录系统&#xff1a; 2.5 修改登录密码…

Android开发系列(十)Jetpack Compose之Card

Card是一种常用的UI组件&#xff0c;用于显示一个具有卡片样式的容器。Card组件通常用于显示列表项、卡片式布局或任何需要显示边框和阴影的UI元素。 使用Card组件&#xff0c;您可以轻松地创建带有卡片效果的UI元素。以下是一些Card组件的常见属性和功能&#xff1a; elevati…

云计算基础知识

前言&#xff1a; 随着ICT技术的高速发展&#xff0c;企业架构对计算、存储、网络资源的需求更高&#xff0c;急需一种新的架构来承载业务&#xff0c;以获得持续&#xff0c;高速&#xff0c;高效的发展&#xff0c;云计算应运而生。 云计算背景 信息大爆炸时代&#xff1a…

导出 S 参数扫描结果供 INTERCONNECT 使用

导出 S 参数扫描结果供 INTERCONNECT 使用 正文正文 有时候,对于 FDTD 无法直接进行仿真的大型仿真链路,我们需要使用 FDTD 针对单个小的模块进行仿真,再将得到的 S 参数结果导入到 INTERCONNECT 中使用,最终完成整个链路的仿真。通常完成 S 参数扫描后其状态如下图所示:…

CSS 原生属性 CSS文本显示省略号...

效果图&#xff1a; 直接上代码 .header {width: 100%;//使用百分比或者固定宽度&#xff0c;注意使用百分比时要确保父元素使用了百分比宽度height: 50px;line-height: 25px;font-weight: bolder;text-overflow: ellipsis;word-break: break-all;overflow: hidden;display: -…