如何从自身内部获取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文件填充将存储为scriptFile
JMeter变量。
参考文献:
- GuiPackage类JavaDoc
- 如何使用BeanShell:JMeter最喜欢的内置组件指南
以上是 如何从自身内部获取Jmeter .jmx项目文件的绝对文件夹位置? 的全部内容, 来源链接: utcz.com/qa/426254.html