如何在 JMeter 中获取线程和采样器名称

Gen*_*uts 4 variables jmeter beanshell

我想在 JMeter 测试计划中获取线程和采样器名称并将其保存在变量中。

我已经使用 BeanShell 后处理器保留了测试计划名称:

导入 org.apache.jmeter.services.FileServer;

String testPlanName = FileServer.getFileServer().getScriptName(); vars.put("testPlanName", testPlanName)

我在电子邮件通知中使用它来发送诸如“测试计划 ${testPlanName} 已收到响应代码 ${responseCode}

但我想以相同的方式包含线程名称和采样器名称。

我已经尝试添加 BeanShell 后处理器 .getThreadname() 和 .getSampleName() 并导入 import org.apache.jmeter.samplers.SampleResult; 但它不起作用。

如何获取这些名称并将其用作变量?

Vad*_*aev 5

共有三个函数,你可以在 BeanShell 中使用它们:

  1. __samplerName()

    samplerName函数返回当前采样器的名称(即标签)。该函数在没有关联采样器的测试元素中不起作用。例如测试计划。配置元素也没有关联的采样器。然而,一些配置元素直接被采样器引用,例如 HTTP 头管理器和 Http Cookie 管理器,在这种情况下,函数在 Http 采样器的上下文中解析。预处理器、后处理器和断言总是有一个关联的采样器。

    例子: ${__samplerName()}

  2. __测试计划名称()

    TestPlanName 函数返回当前测试计划的名称(可以在Include Plans 中使用以了解调用测试计划的名称)。

    例子: ${__TestPlanName}

    请注意,__TestPlanName 将返回测试计划的文件名,它可以与测试计划名称不同。

  3. __threadGroupName()

    线程组名称函数只是返回正在执行的线程组的名称。

    例子: ${__threadGroupName}

有关使用的完整详细信息BeanShell,请参阅: