JMeterを使用してWebサーバーのパフォーマンステストを行っています。私のテストケースは次のとおりです。
step1: send file update request to server.
step2: server will return some files URL as html response
step3: client need to create new request with the URL returned in step2,thus need to parse
the response of step2.
私はJMeterを初めて使用しますが、その実装方法がわかりません。私は基本的にプリプロセッサとポストプロセッサについてJMeterを学びましたが、それでもその方法についてはわかりません。
さて、最初のステップの前に始めましょう:
Right click -> Add -> Threads (Users) -> Thread Group
_Add -> Sampler -> Http Request
_
下部に_Send Files With the Request
_があります。それがあなたが求めたものであるならば、あなたは添付ファイルを加えることができます。
あなたの応答がこれであると仮定しましょう:
_<Response>
<name>StackOverflow.com</name>
<url>http://stackoverflow.com/questions/11186423/how-to-parse-response-of-sample1-to-create-new-sample-in-jmeter</url>
</Response>
_
これがあなたがすることです:
Right click on The http request you previously added (in step 1) -> Post Processors -> Xpath Extractor
_Reference Name
_は、値を格納する変数の名前です。 url
という名前を付けましょう。さらに応答タグを取得した場合、_Xpath query
_は_Response/url
_または_//Response/url
_になります。最初のものが必要な場合は_//Response[1]/url
_など。
Xpath Extractor
_を削除します)、_Server Name or IP
_を以前に返された値である_${url}
_に変更します。そして、出来上がりです。より具体的な質問があれば教えてください。 Jmeterは楽しいです。
グレースごとのコメント:
_https://192.168.100.46/updserver/download?action=signature_download&token=
_を抽出したい
応答データから:
_<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>
_
これはかなり簡単なはずです。 _Add a post processor -> Regular Expression Extractor
_そして以下を入れてください:
_Reference Name : url
Regular Expression : (http[\S]+)
Template : $1$
Match No. (0 for Random): 1
_
これで、url
変数ができました。これは、テストで_${url}
_としてさらに使用できます。それがあなたのために働くかどうか私に知らせてください。私はダミーサンプラーでテストしました、そしてそれは私のために働きます。
これは、URLから値を抽出し、それを変数としてさらに渡して、次のリクエストに含まれるようにする方法です。
JMeterでのテストの作成に関するいくつかの素晴らしいスクリーンショットとより広い説明があります http://jmeter.Apache.org/usermanual/build-web-test-plan.html
Thread Group
とHTTP Requests
を追加します
このHTTP Requests
応答にいくつかのデータ(この例ではURL)が含まれている場合、それを抽出して後で使用します
じゃ、行こう:
最初のHTTPリクエストに移動し、その後、変数を使用して応答を受け取ります。
追加->ポストプロセッサ->正規表現エクストラクタ
このウィンドウセットでは:
チェックする応答フィールド:URL
参照名:MY-CUSTOM-VARIABLE-NAME
好きなように変数の名前を定義します
正規表現:permanent.part.of.url.com/([a-zA-Z0-9]*)
so expression([a-zA-Z0-9] *)開始時に永続的なURLを満たした後、アルファベットと数字の文字のすべての出現を取得する責任があります
テンプレート:$ 1 $
この場合、1つの式のみが抽出され、読み取る必要があります
マッチ番号(ランダムの場合は0):1
この場合、一致するものは1つだけですが、さらに発生する場合は、どちらを使用するかを選択できます
次に、抽出した値を次のHTTPリクエストパス:some.otherに配置します。 url.com/${MY-CUSTOM-VARIABLE-NAME}
このパターン$ {}でJMeter変数を読み取ることを忘れないでください。したがって、この値が必要な場合は常に${MY-CUSTOM-VARIABLE-NAME}
を使用してください。
テストを実行し、MY-CUSTOM-VARIABLE-NAME
を使用してリクエストのURLで何を取得したかを確認します。正規表現を試して、目的の出力を取得します。
これについてのブログ投稿は次のとおりです。 http://kenning.co.nz/development/extracting-variables-using-regular-expressions-in-jmeter/
そして、常に役立つJMeterドキュメント: http://jmeter.Apache.org/usermanual/component_reference.html#Regular_Expression_Extractor