TomcatアプリケーションをテストするためにjMeterを使用しています。 jMeter応答を解析し、2番目の要求を行う必要があります。最初の応答は次のようになります。
<responseData class="Java.lang.String"><html>
<body>
ERROR=0
MSG=N/A
FILELIST=1555;1340778737370;1526545487;
VERSION=1.002
URL=https://192.168.100.46/updserver/download?action=signature_download&token=
INTERVAL=0
</body>
</html>
</responseData>
「FILELIST」変数と「URL」変数を抽出して、新しいURLに挿入する必要があります。
https://192.168.100.46/updserver/download?action=signature_download&token=1555;1340778737370;1526545487;
私はそれを行うためのポストプロセッサがあることを知っていますが、それを行う方法の手がかりはありません。ところで、2番目のリクエストはTomcatサーブレットからいくつかのファイルをダウンロードしますが、jMeterが物理ファイルに書き込むことなくストリームをダウンロードするようにする方法はありますか?そのため、サーブレットに対して負荷パフォーマンステストを実行できます。
わかりましたので、あなたはすでにあなたの応答から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('
'\,'${FILELIST}'))}");
これで、テストでさらに使用する${NEW_URL}
ができました。
問題を解決する方法は常に複数あります。このライナーは見苦しいですが、目的には役立ちます。
私のテストでは、結果はあなたが要求したとおりです(Debug Sampler):
url=https://192.168.100.46/updserver/download?action=signature_download&token=
FILELIST=1555;1340778737370;1526545487;
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&token=1555;1340778737370;1526545487;
編集:
変数の名前の付け方がわからないと思います。ただし、最終的な結果は、質問で説明したものです。動作例に添付されている.jmxテストを参照してください。
http://www.filefactory.com/file/1q7nfitmh4qd/n/so_11309469_jmx
Jmeterの2.6+バージョンで動作するjmeter .jmxファイルです