web-dev-qa-db-ja.com

Jmeter応答を解析して新しい要求を行う方法

TomcatアプリケーションをテストするためにjMeterを使用しています。 jMeter応答を解析し、2番目の要求を行う必要があります。最初の応答は次のようになります。

<responseData class="Java.lang.String">&lt;html&gt;&#xd;
&lt;body&gt;&#xd;
ERROR=0&#xd;
MSG=N/A&#xd;
FILELIST=1555;1340778737370;1526545487;&#xd;
VERSION=1.002&#xd;
URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd;
INTERVAL=0&#xd;
&lt;/body&gt;&#xd;
&lt;/html&gt;&#xd;
</responseData>

「FILELIST」変数と「URL」変数を抽出して、新しいURLに挿入する必要があります。

https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd;

私はそれを行うためのポストプロセッサがあることを知っていますが、それを行う方法の手がかりはありません。ところで、2番目のリクエストはTomcatサーブレットからいくつかのファイルをダウンロードしますが、jMeterが物理ファイルに書き込むことなくストリームをダウンロードするようにする方法はありますか?そのため、サーブレットに対して負荷パフォーマンステストを実行できます。

25
Simon Wang

わかりましたので、あなたはすでにあなたの応答からURLを抽出する方法を知っています。

https://stackoverflow.com/a/11188349/169277

しかし、ここでそれを拡張します。サンプラーがあり、すでに$ {url}を取得しています。 FILELISTが必要になり、新しいURLをアセンブルします。

リクエストとURLエクストラクタが既に配置されていると仮定します。新しいRegular expression extractorを追加します。

Right click on request sampler -> Post Processors -> Regular Expression Extractor

Reference Name : FILELIST
Regular Expression : FILELIST=(\S+)
Template : $1$
Match No. (0 for Random): 1

これで、1つのリクエストサンプラーと2つの正規表現エクストラクターができました。新しいURLをアセンブルするには、ポストプロセッサを追加する必要があります。

Right click on request sampler -> Post Processors -> BSF PostProcessor

Script languageの下の言語ドロップリストからbeanshellを選択し、大きなフィールドScript:に以下を貼り付けます:

vars.put("NEW_URL", "${__javaScript('${url}'.replace('&#xd;'\,'${FILELIST}'))}");

これで、テストでさらに使用する${NEW_URL}ができました。

問題を解決する方法は常に複数あります。このライナーは見苦しいですが、目的には役立ちます。

私のテストでは、結果はあなたが要求したとおりです(Debug Sampler):

url=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd;
FILELIST=1555;1340778737370;1526545487;&#xd;
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd;

編集:

変数の名前の付け方がわからないと思います。ただし、最終的な結果は、質問で説明したものです。動作例に添付されている.jmxテストを参照してください。

http://www.filefactory.com/file/1q7nfitmh4qd/n/so_11309469_jmx

Jmeterの2.6+バージョンで動作するjmeter .jmxファイルです

21
ant

キャプチャ 応答の一部に 正規表現抽出 を使用します。

ViewResultsTreeリスナーを使用して、応答データで正規表現をテストできます。 ViewResultsTreeリスナーの左側のパネルの下部にあるドロップダウンボックスでRegexpテスターを選択するだけです。

7
Marko Bonaci