Jmeter是否在运行时设置变量'定位'测试文件目录?

时间:2015-01-22 20:58:54

标签: jmeter

当启动Jmeter时,我看到一些证据表明Jmeter可能正在设置一些名为' base'和' testFilesDirectory' 。有没有人有使用这些变量的经验并且可以访问吗?

jmeter.services.FileServer: Default base='C:\Users\x\ws\test\target\jmeter\bin' 
jmeter.gui.action.Load: Loading file: C:\Users\x\ws\test\src\test\jmeter\Tests.jmx 
jmeter.services.FileServer: Set new base='C:\Users\x\ws\test\src\test\jmeter' 

而且:

[DEBUG]   (f) propertiesReplacedByCustomFiles = true
[DEBUG]   (f) resultsFileFormat = xml
[DEBUG]   (f) skipTests = false
[DEBUG]   (f) suppressJMeterOutput = true
[DEBUG]   (f) testFilesDirectory = C:\Users\x\ws\test\src\test\jmeter
[DEBUG]   (f) testResultsTimestamp = true
[DEBUG]   (f) workDir = C:\Users\x\ws\test\target\jmeter
[DEBUG] -- end configuration --

1 个答案:

答案 0 :(得分:1)

您可以按如下方式访问这些变量using Beanshell

  1. JMeter的基础目录

    import org.apache.jmeter.services.FileServer;
    
    String baseDir = FileServer.getFileServer().getBaseDir();
    vars.put("baseDir", baseDir);
    
  2. JMeter的脚本位置(GUI模式)

    import org.apache.jmeter.gui.GuiPackage;
    
    String testPlanFile = GuiPackage.getInstance().getTestPlanFile();
    vars.put("testPlanFile", testPlanFile);
    
  3. JMeter的脚本名称(非GUI模式)

    import org.apache.jmeter.services.FileServer;
    
    String scriptName = FileServer.getFileServer().getScriptName();
    vars.put("scriptName", scriptName); 
    
  4. 如果您愿意,可以使用__Beanshell()函数

    获得相同的效果
    ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir())}
    

    它将返回调用它的当前基目录。