首页 > 解决方案 > jmeter - 如何将线程组名称/样本名称提取到另一个样本中

问题描述

我需要为我的测试获取一些数据。我想提取:

线程组名称+样本名称,然后在另一个样本中使用,作为样本名称。我知道使用 JSR223 我可以得到: 线程名称为:

String groupName = ctx.getThreadGroup().getName();
log.info(groupName);

但是,是否有一些 Jmeter 功能可以帮助我实现这一点,所以我可以在不使用 JSR223 的情况下用于每个采样器?

例如:如果我的线程组名称是:token call,而我的采样器名称是,Get Token,如何在第二个采样器中使用?预期输出类似于:获取第一个请求 - 令牌调用 - 获取令牌

在此处输入图像描述

标签: jmeter

解决方案


默认情况下,您可以使用以下内置 JMeter 函数获取当前采样器的名称和当前线程组的名称

当前线程组名称 -> ${__threadGroupName}

当前采样器名称 -> ${__samplerName()}

在采样器名称函数中,您可以将其存储到变量中并在后续位置重复使用

${__samplerName(previousSamplerName)}

但是,问题是您的示例中可能没有任何位置来实际获取采样器的名称并存储它,因为没有开箱即用的处理器元素可以帮助提供占位符来执行此类操作(除了 Beanshell 和 JSR223) .

因此,我的建议是对采样器使用基于插件的后处理器“Dummy Subresult”,然后获取当前样本的名称并将其存储在变量中。这是 Dummy Sampler 插件的一部分。

插件下载链接:https ://jmeter-plugins.org/wiki/DummySampler/

参考截图

虚拟子结果 在此处输入图像描述

输出 在此处输入图像描述

希望这可以帮助!


推荐阅读