8

Maven によって実行され、パスによって外部 Beanshell スクリプトを見つけることができる Jmeter プロジェクトがありますsrc/test/jmeter/external-scripts-dir/script1.bshが、コンピューターの GUI で Jmeter を直接実行すると、相対位置が機能せず、テストをスタンドアロンで実行できません。これにより、Maven から Jmeter を実行する必要があります。

したがって、Maven レイアウトの場所にあるプロジェクト ファイルがありますC:\files\git\projectA\src\test\jmeter\Project.jmxが、jmeter のインストール フォルダーから jmeter を実行した C:\Jmeter2.12ため、前述の外部スクリプトの相対場所を見つけることができません。

これを解決するには、変数を .jmx ファイルを含むディレクトリに設定するだけです。これを行う方法はありますか?

Jmeter ( C:\Jmeter2.12) のホームを (次のコードを使用して) 非常に簡単に動的に決定できますが、それではプロジェクト ファイルの場所を取得できません。

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer
  .getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}

プロジェクトファイルの場所を推測できる上記のコードに似たものはありますか?

4

3 に答える 3

9

JMeter を GUI モードで実行するときに現在のスクリプトを見つける方法を探している場合は、次の 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 変数として保存されます。

参考文献:

于 2015-01-08T12:13:31.643 に答える