JMeter API测试:如何让指定HTTP采样器仅用专属Header Manager
解决JMeter指定采样器仅使用专属Header Manager的方法
方法1:用测试片段隔离登录请求
- 将登录请求和它的专属Header Manager放入**测试片段(Test Fragment)**中
- 通过**模块控制器(Module Controller)**调用这个测试片段
- 测试片段内的元件不会继承测试计划级的全局Header Manager,这样登录请求就只会加载自身的专属Header
方法2:通过条件判断控制全局Header生效范围
- 在全局Header Manager的每个Header值前添加条件判断,用
${__jexl3(${__samplerName()} != '登录请求',)}来控制Header是否启用- 举个例子:如果全局Header是
Authorization,值就设为${__jexl3(${__samplerName()} != '登录请求',)}Bearer your-token,这样只有采样器名称不是“登录请求”时,这个全局Header才会生效
- 举个例子:如果全局Header是
- 注意要保证登录请求的采样器名称和判断字符串完全匹配
方法3:用前置处理器清空全局Header
- 在登录请求里添加JSR223前置处理器,用Groovy代码先清空继承的全局Header,再添加专属Header:
// 清空当前采样器的所有Header sampler.getHeaderManager().clear(); // 添加专属Header,按需修改名称和值 sampler.getHeaderManager().add("X-Custom-Header", "login-only-value"); - 这种方式会先清除全局继承的Header,只保留你添加的专属Header
方法4:拆分线程组调整层级
- 把49个普通采样器放到一个线程组,给这个线程组绑定全局Header Manager
- 登录请求单独放在另一个线程组,只添加它的专属Header Manager
- 如果需要按顺序执行,在测试计划里勾选“独立运行每个线程组”,并调整线程组的执行顺序
内容的提问来源于stack exchange,提问作者Mayuri De
相关产品推荐
相关产品推荐

