我有一个由 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/