如何从自身内部获取Jmeter .jmx项目文件的绝对文件夹位置?

我有一个由Maven执行的Jmeter项目,并且能够通过该路径找到外部Beanshell脚本src/test/jmeter/external-

scripts-

dir/script1.bsh,但是当我直接在计算机上的GUI中运行Jmeter时,相对位置不起作用,并且测试无法独立运行。这迫使我从Maven运行Jmeter。

因此,我有一个项目文件,该文件位于Maven布局位置,C:\files\git\projectA\src\test\jmeter\Project.jmx但由于我从其安装文件夹jmeter运行了

C:\Jmeter2.12,因此找不到我前面提到的外部脚本的相对位置。

为了解决这个问题,我需要为包含.jmx文件的目录设置一个变量。有什么可行的方法吗?

我可以C:\Jmeter2.12很轻松地动态确定Jmeter()的位置(使用以下代码),但这并不能帮助我获取项目文件的位置。

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer

.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}

是否有类似于上面的代码的内容,可以让我推断项目文件的位置?

回答:

如果在GUI模式下运行JMeter时正在寻找查找当前脚本的方法,则可以尝试以下Beanshell表达式:

${__BeanShell(import org.apache.jmeter.gui.GuiPackage;GuiPackage.getInstance().getTestPlanFile();)}

如果将其分解为5条线,则会出现:

import org.apache.jmeter.gui.GuiPackage;

import org.apache.commons.io.FilenameUtils;

String testPlanFile = GuiPackage.getInstance().getTestPlanFile();

String testPlanFileDir = FilenameUtils.getFullPathNoEndSeparator(testPlanFile);

vars.put("testPlanFileDir", testPlanFileDir);

log.info("testPlanFileDir:" + testPlanFileDir);

您当前的.jmx文件填充将存储为scriptFileJMeter变量。

参考文献:

  • GuiPackage类JavaDoc
  • 如何使用BeanShell:JMeter最喜欢的内置组件指南

以上是 如何从自身内部获取Jmeter .jmx项目文件的绝对文件夹位置? 的全部内容, 来源链接: utcz.com/qa/426254.html

回到顶部