jmeter - 如何从 Jmeter .jmx 项目文件本身获取绝对文件夹位置?

标签 jmeter jmeter-maven-plugin

我有一个由 Maven 执行的 Jmeter 项目,并且能够通过路径 src/test/jmeter/external-scripts-dir/script1.bsh 找到外部 Beanshell 脚本。 ,但是当我直接在计算机上的 GUI 中运行 Jmeter 时,相对位置不起作用,并且无法独立运行测试。这迫使我从 Maven 运行 Jmeter。

所以,我有一个位于 Maven 布局位置的项目文件,如 C:\files\git\projectA\src\test\jmeter\Project.jmx但因为我从其安装文件夹 C:\Jmeter2.12 运行 jmeter ,它找不到我前面提到的外部脚本的相对位置。

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

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

${__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 变量。

引用文献:

关于jmeter - 如何从 Jmeter .jmx 项目文件本身获取绝对文件夹位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809422/

相关文章:

java - jmeter调用 Controller 中的其他线程组变量

java - Junit4 与 Jmeter 的集成

jmeter - 在jmeter中转换纪元时间格式

maven - JMeter 可以断言吞吐量吗?

maven - 如何让 maven 只运行 JMeter 测试(没有其他生命周期)

jmeter - 虚拟机初始化期间发生错误无法为对象堆保留足够的空间 errorlevel=1

javascript - jp@gc 错误 - Firefox 驱动程序配置

maven - Jmeter maven 插件 |即使有失败,maven 构建也不会失败

java - Jmeter测试使用maven运行

mongodb - JMeter 使用 Java BeanShell : Problem in JSR223 script Sampler 将文档保存到 MongoDb