14

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を学びましたが、それでもその方法についてはわかりません。

4

2 に答える 2

27

さて、最初のステップの前に始めましょう:

Right click -> Add -> Threads (Users) -> Thread Group

  • ここで、実際の最初のステップ(RESTを使用する場合):

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 queryResponse/urlまたは//Response/urlあなたがより多くの応答タグを取得した場合。最初のものが必要な場合//Response[1]/urlなど。

  • 手順1を繰り返し(サンプラーをコピーして貼り付け、Xpath Extractor不要になったものを削除します)、以前に返された値に変更Server Name or IPします。${url}

そして、出来上がりです。もっと具体的な質問があれば教えてください。Jmeterは楽しいです。

グレースコメントごと:

抽出したいhttps://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd;

応答データのうち:

<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>

これはかなり単純なはずです。Add a post processor -> Regular Expression Extractorそして、次のように置きます:

Reference Name : url 
Regular Expression : (http[\S]+)
Template : $1$
Match No. (0 for Random): 1

これurlで、テストでさらに使用できる変数ができました${url}。それがあなたのために働くかどうか私に知らせてください。私はダミーサンプラーでテストしました、そしてそれは私のために働きます。

于 2012-06-25T11:19:06.627 に答える
4

これは、URLから値を抽出し、それを変数としてさらに渡して、次のリクエストに含まれるようにする方法です。

JMeterhttp://jmeter.apache.org/usermanual/build-web-test-plan.htmlでテストを行うためのいくつかの素晴らしいスクリーンショットとより広い説明があります

Thread Groupおよびを追加しますHTTP Requests

この HTTP Requests応答にいくつかのデータ(この例ではURL)が含まれている場合、それを抽出し、後でそれを使用します

じゃあ、行きましょう:

  1. 最初のHTTPリクエストに移動します。その後、変数を含む応答を受け取ります。

    追加->ポストプロセッサ->正規表現エクストラクタ

    このウィンドウセットでは:

    チェックする応答フィールド:URL

    参照名: MY-CUSTOM-VARIABLE-NAME

    変数の名前を好きなように定義します

    正規表現: permanent.part.of.url.com/([a-zA-Z0-9] *)

    したがって、式 ([a-zA-Z0-9] *) は、開始時に永続的なURLを満たした後、アルファベットと数字の文字のすべての出現を取得する責任があります

    テンプレート: $ 1 $

    この場合、1つの式のみが抽出され、読み取る必要があります。

    マッチ番号(ランダムの場合は0): 1

    この場合、一致するものは1つだけですが、さらに発生する場合は、どちらを使用するかを選択できます。

  2. 次に、抽出した値を次のHTTPリクエスト パスに配置します: some.other.url.com/${MY-CUSTOM-VARIABLE-NAME}

    このパターン${}でJMeter変数を読み取ることを忘れないでください。したがって、${MY-CUSTOM-VARIABLE-NAME}この値が必要な場合はいつでも使用してください。

テストを実行し、regexpを試して、リクエストのURLで何を取得したかを確認してMY-CUSTOM-VARIABLE-NAME 、目的の出力を取得します。

これについてのブログ投稿は次のとおりです: http://kenning.co.nz/development/extracting-variables-using-regular-expressions-in-jmeter/

そして、常に役立つJMeterドキュメント:http: //jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor

于 2013-05-13T12:38:50.607 に答える