【问题标题】:How to get the thread and the sampler name in JMeter如何在 JMeter 中获取线程和采样器名称
【发布时间】:2020-01-15 23:15:55
【问题描述】:

我想在 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;但它不起作用。

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

【问题讨论】:

    标签: variables jmeter beanshell


    【解决方案1】:

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

    1. __samplerName()

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

      示例:${__samplerName()}

    2. __TestPlanName()

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

      示例:${__TestPlanName}

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

    3. __threadGroupName()

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

      示例:${__threadGroupName}

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

    【讨论】:

    • 太好了,我会把它添加到答案中!注意,__TestPlanName 将返回测试计划的文件名,可以与测试计划名称不同。
    【解决方案2】:

    您可以使用 BeanShell 将线程和采样器名称保存到参数中:

    String _threadGroup = ctx.getThreadGroup().getName();
    
    String _sampleName=ctx.getCurrentSampler().getName();
    

    String _sampleLabel = SampleResult.getSampleLabel();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多