JMeter 2.7つかってみた:ForEachコントローラー

  1. ForEachコントローラーの確認
    用意するもの

    正規表現処抽出するsamplelinks.html
    <html>
      <head>
        <title>りんくてすと</title>
      </head>
      <body>
        <p><a href="link_red.html">れっど</a></p>
        <p><a href="link_blue.html">ぶるー</a></p>
        <p><a href="link_green.html">ぐりーん</a></p>
        <p></p>
      </body>
    </html>

    JMeterの設定(この設定のダウンロード)
    ユーザー定義変数
    ユーザー定義変数を利用してForEachコントローラを利用するための設定です。

    スレッドグループ
    スレッドグループはこれで

    正規表現抽出をする場合の設定
    用意したhtmlから正規表現抽出をするためのリクエストです。

    正規表現抽出
    参照名をvarlinksとします。正規表現はリンクからアドレスだけ抽出する指定です。
    一致番号を-1にすると一致したすべてを抽出します。抽出した変数状態は以下の通りとなります。
    指定した参照名+"_"+連番の参照名に抽出された値が格納されます。
    変数内容


    1個目のForEach
    1個目のForEachコントローラ、正規表現抽出で指定した参照名をInput変数名接頭辞に指定します。
    取り出された変数名としてOutput変数名をgetlinkとして指定します。
    正規表現抽出で複数取り出された変数にはアンダーバーが付与されるのでAdd"_"before number?にはチェックをします。

    ForEachコントローラでのリクエスト
    ForEachコントローラのOutput変数名getlinkを使用してリクエストパス(/jmeter /${getlink})を作成します。
    サンプラー等の中で参照名を利用する場合は${}で括ります。

    2個目のForEachコントローラー
    ユーザー定義変数で設定した変数を利用する場合の設定、varの後にアンダーバーを入れていないのでAdd"_"before number?はチェックしない。

    リクエスト
    設定は1個目と同じ

    ここで実行をしてみる
    1個目の結果
    リクエストの2個目の結果を見てみる。用意したhtml中の2つ目にリンクへリクエストを送っている。
    実際にはファイルがないのでgetは失敗しています。

    2個目の結果
    リクエストの2個目の結果を見てみる。設定した変数の2つ目にリンクへリクエストを送っている。
    実際にはファイルがないのでgetは失敗しています。