JMeter Include Controller如何仅执行Test Fragment引用控制器

问题根因
Include Controller加载外部JMX时,会自动执行外部JMX里所有启用状态的顶层可执行元件,当前Sub1.JMX里同时存在同名Subscription线程组和Test Fragment,加载时会直接触发Sub1自带线程组的执行逻辑,连带把Test Fragment里未引用的元件也带跑。
配置方法
只需要调整Sub1.JMX的结构即可,Main.JMX不用改动:
- 直接禁用或者删除Sub1.JMX里顶层的
Subscription线程组。作为被引用的子模块文件,不需要保留独立运行的线程组,留着会被Include Controller识别为可执行元件自动触发。 - 确认所有可复用逻辑(Sub1-Login、Sub1-Logout、Sub1-close)都放在Test Fragment节点下,且Test Fragment直接放在测试计划根目录,不要嵌套在任何线程组内部。Test Fragment本身的机制就是不会自动执行,只有被Module Controller显式引用的片段才会运行,未被引用的内容不会触发。
- 清理Sub1.JMX测试计划根目录下的冗余元件:除了Test Fragment、全局配置元件(比如HTTP请求默认值、CSV数据文件设置这类公共配置),其余没用的监听器、调试取样器、独立线程组全部禁用或者删除。
校验标准:改完后单独运行Sub1.JMX,不会执行任何采样请求(因为没有启用的活跃线程组),此时再运行Main.JMX,就只会执行Test Case-1里通过Module Controller引用的登录、注销逻辑,未引用的Sub1-close不会被执行。
内容的提问来源于stack exchange,提问作者Chary Chelloji
相关产品推荐
相关产品推荐

