JMeter 2.7つかってみた:正規表現抽出

  1. JMeter 2.7では変数(JMeterでは参照という)が使えます。レスポンスのあったページの特定部分を取り出して次 のリクエストへのデータとして渡すことができます。

  2. サンプルとして1つ目のリクエストで取得した値を次のリクエストのパラメータとして渡してみます。

    1つ目のリクエスト
    実行ボタンを押すと結果ツリーの応答に以下のように入るので2つ目のdivのクラス「yu-b」をパラメータとして渡したいとい うことにして取得したいとおもいます。
    一つ目の結果

  3. 正規表現抽出を後処理から追加します。
    正規表現抽出
    参照名:ここに指定した名前で変数として利用できます。
    正規表現:マッチングの文字列を指定します。()の中のものを抽出します。詳しくは以下サイトを参照
    サ ルにもわかる正規表現入門
    テンプレート:()の指定が複数ある場合に何番目のものを対象とするか指定します。$1$で1個目です。
            2つ指定した場合「<div (c.*)="(.*)">」に2個目の(.*)を取る場合は$2$とします。参照(変数)divclassへ取得した結果です。
    デバッグツリー
    2つかっこがあり、2個目を取得したのでdivclassにはyui_bが入ります。

    一致番号:複数マッチングした場合に取得する位置を指定します。1から連番です。指定なしや0だとランダムになります。

  4. 取得したものを次のリクエストに渡します。
    次のリクエスト
    1回目のリクエストと同じURLですが、これにパラメータ追加します。
    Parameters:名前 getdata  値:${divclass} 正規表現抽出で取得した参照名を${}で括ります。

    リクエスト内容
    リクエスト結果は上記通りとなります。GETパラメータでしたので?のあとにgetdata=yui-bとついています。


  5. デバッグサンプラーで取得した値を確認できます。
    デバックサンプラー

    デバッグ結果
  6. 抽出した結果をログ出力してみる。
    シェルプロセッサ

    値とれないと以下のようになる。${divclass}がそのまま出てきてしまう。
    値取れてないとき