web-dev-qa-db-ja.com

jmxファイルからの相対パスを含むJMeterアップロードファイル

HTTPサービスへのファイルのアップロードを自動化するために、JMeterでHTTPリクエストサンプラーを作成しています。 「Send Files With the Request」の「File Path」をjmxファイルの場所からの相対パスに設定する方法はありますか?

29
Eatdoku

はい。 (これはJMeter v2.9で確認されました)

ファイル名入力フィールドでは、次のBeanShell式を使用できます。

${__BeanShell(import org.Apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}<YOUR FILENAME HERE>

したがって、ファイル "pload.jpg"がJMXテストファイルと同じフォルダにある場合、完全な値は次のようになります。

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

少しすっきりさせるには、式のベースを変数に割り当てる「ユーザー定義変数」設定要素を変数に追加します。

SCRIPT_PATH = ${__BeanShell( ...etc

次に、ファイルパスの入力値がより読みやすくなります。

${SCRIPT_PATH}upload.jpg

45
PålOliver

私はバージョン2.11の下にあり、BeanShellスクリプトは、CSVファイルを相対化するために機能せず、相対パスを作成するために、この~/filename.csvを使用するだけで十分です。これは、CSVファイルがJMXファイルと同じディレクトリに存在することを意味します。しかし、たとえば~/../results_dir/filename.csvなどに変更できます。

幸運を。

6
Farah

私はここで答えを見つけました http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html これは...

  • ステップ1:プロジェクトにユーザー定義変数のConfig要素を作成します。
  • ステップ2:新しい変数CONFIG_PATHを追加する
  • ステップ3:値の列に次のコードを配置します:$ {__ BeanShell(import org.Apache.jmeter.services.FileServer; FileServer.getFileServer()。getBaseDir();)}
  • ステップ4:$ {CONFIG_PATH}\config.xmlのように任意の場所に変数名を使用します

jmxと同じフォルダにfilename.csvがあり、JMeter 2.11以降で〜/ filename.csvを配置すると、Javaが機能しませんでした

2
Justin Key