4

Apache JMeter 2.7 を使用してテスト Liferay をロードしています。私が作成しているそのようなテストの 1 つは、ファイルを動的に生成し、それらを Liferay の Document and Media ポートレットにアップロードすることです。私が抱えている問題はLiferayとは何の関係もありません... HTTPリクエストで「リクエストでファイルを送信」の「ファイルパス」ボックスに正確なパスを入力すると、ドキュメントをアップロードできるため、これを知っています. これは、テストを実行する必要がある方法ではありません。

ファイル名に異なる UUID を使用して、テストのループごとに一意のファイルを生成するような方法でテストを実行したい (BeanShell PreProcessor で実行し、必要に応じて実行します)。ファイル名を格納するために使用するユーザー定義変数 FILENAME があります。HTTP リクエストでは、ファイル パスにパスを使用しますC:\Installs\Apache Jmeter\apache-jmeter-2.7\bin\${FILENAME}が、JMeter は変数を処理しません。

結果ツリーを表示すると、次のエラーが表示されます。

java.io.FileNotFoundException: C:\Installs\Apache Jmeter\apache-jmeter-2.7\bin\${FILENAME} (指定されたファイルが見つかりません)

しかし、ファイル パス (たとえば ...\bin\doc.txt) をハード コードし、ドキュメントのタイトルの値 (HTTP 要求で送信するパラメーター) として ${FILENAME} を使用すると、ドキュメントは(doc.txt) は、FILENAME の文字列値をタイトルとしてポートレットにアップロードします。これにより、正しい文字列が変数 FILENAME に格納されていることがわかります。このことから、JMeter は、HTTP リクエストでファイルを送信するためのファイル パスの変数を単純に置き換えていないと推測します。この結論が間違っている場合は、エラーを修正する方法を教えてください。他の誰かがこの問題を抱えていますか?

現在、変数名でファイルパスを動的に更新する BeanShell PreProcessor をこの http 要求に追加することで、回避策を作成しようとしています。いくつか設定する必要がありvariable = vars.get("FILENAME")ます。ここからHTTPファイルパスをプログラムで設定する方法を知っている人はいますか? 私は答えをAPIで探しています。私は今完全に困惑しているので、どんな助けも大歓迎です。

4

1 に答える 1

10

を使用しているため、失敗しています\${FILENAME}
これは $ をエスケープするため、変数は解釈されません。

解決:

  • C:\\Installs\\Apache Jmeter\\apache-jmeter-2.7\\bin\\${FILENAME}
    (Mac OS を使用しているため、テストできません);
  • C:/Installs/Apache Jmeter/apache-jmeter-2.7/bin/${FILENAME}
    (これは確かにWindowsで動作します)。
于 2012-06-06T21:15:19.533 に答える