如何在变量中获取JMX Jmeter文件名的名称

时间:2015-07-01 09:46:36

标签: variables jmeter jmx

我想在侦听器中使用jmeter测试脚本(.jmx)的名称,以便以动态方式生成结果文件。你能否告诉我为此目的的Jmeter变量是什么?

使用的$ {fileName}无效

3 个答案:

答案 0 :(得分:2)

包含测试计划名称的变量是${__TestPlanName}

参考:http://jmeter.apache.org/usermanual/functions.html#__TestPlanName

答案 1 :(得分:1)

您可以通过Beanshell scripting来完成,例如:

  1. GUI模式

    import org.apache.jmeter.gui.GuiPackage;
    
    String scriptName = GuiPackage.getInstance().getTestPlanFile();
    vars.put("scriptName", scriptName);
    
  2. 非GUI模式

    import org.apache.jmeter.services.FileServer;
    
    String scriptName = FileServer.getFileServer().getScriptName();
    vars.put("scriptName", scriptName); 
    
  3. 将您选择的代码段放入任何" Beanshell"测试元素(采样器,前/后处理器或断言),它将获得.jmx测试脚本名称并将其存储到${scriptName}变量中。

    要了解有关JMeter中Beanshell脚本的更多信息,请查看How to use BeanShell: JMeter's favorite built-in component指南。

答案 2 :(得分:1)

无论GUI /非GUI模式如何,下面都可以工作:

import org.apache.jmeter.services.FileServer;
import java.io.File;

String testPlanFile = FileServer.getFileServer().getBaseDir() +
                       File.separator +
                       FileServer.getFileServer().getScriptName();

props.put("testPlanFile", testPlanFile);

将其用作$ {__ P(testPlanFile)} - 将其添加为var将无法在所有线程中使用。来自http://jmeter.apache.org/usermanual/functions.html -

  

属性与变量不同。变量是a的本地变量   线;属性对于所有线程都是通用的,并且需要   使用__P或__property函数引用。