2

VIEWSTATE値とEVENTVALIDATION値を抽出したいのですが、できていません。このテキストから 2 つの文字列 (viewstate と eventvalidation) を抽出する方法は?

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="DAwNEAIAAA4BBQAOAQ0QAgAADgEFAQ4BDRACAAAOAQUTDgENEAIAAA4BBQUOAQ0QAhAMDA8DAQlEYXRhQm91bm=" />


 <!--
        <div class="FullWidth FooterMa
            <div class="container_24 clearf
                <div class="grid_14 clearfix eisk-info alpha suffix
                    <p class="grid_14 branding-x2 alpha" title="" style="text-align:rig

                    <p style="text-align:rig

                </
            </
        </
    -->

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="GwABAAAA/////wEAAAAAAAAADwEAAAACAAAACAZFC0eJh7q7CwA=" />
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
4

4 に答える 4

2

これらの正規表現を試してください:

<input.*id="__(?:VIEWSTATE|EVENTVALIDATION)"\s+value="([^"]+)"\s+/>

デモ

http://regex101.com/r/iZ4kQ7

于 2014-01-21T10:30:56.923 に答える
2

HTML を正規表現、特に複数行の表現で解析するのは得策ではありません。わずかなマークアップの変更ですべての労力が失われるからです。次のように、代わりにXPath Extractor Post Processorを使用してみてください。

  • 参照名: テスト
  • XPath クエリ : //input[@id='_ VIEWSTATE']/@value | //input[@id=' _EVENTVALIDATION']/@value

VIEWSTATE をJMeter 変数として${test_1}、EVENTVALIDATIONを参照できるはずです。${test_2}

Debug SamplerView Results Tree Listenerの組み合わせは、JMeter のプロパティと変数を表示するのに非常に便利で、正規表現やその他のエクストラクタのデバッグに使用できます。

于 2014-01-21T13:58:36.397 に答える
0

最初の正規表現エクストラクタは、ページの VIEWSTATE 要素を取得し、JMeter の viewState 変数に格納します。次の方法で、JMeter に新しい正規表現エクストラクタを追加します。

  • スレッド グループを右クリックします。
  • [追加] -> [ポスト プロセッサ] -> [正規表現エクストラクタ] を選択します

次のように構成します。

  • 参照名: viewState
  • 正規表現: name="__VIEWSTATE" id="__VIEWSTATE" value="(.+?)"
  • テンプレート: $1$
  • 数学番号: 1
  • デフォルト値: エラー

状態エクストラクタを表示

EVENTVALIDATION 要素を eventValidation 変数に格納する正規表現エクストラクタ。また:

  • スレッド グループを右クリックします。
  • [追加] -> [ポスト プロセッサ] -> [正規表現エクストラクタ] を選択します

次のように構成します。

  • 参照名: eventValidation
  • 正規表現: name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.+?)"
  • テンプレート: $1$
  • 数学番号: 1
  • デフォルト値: エラー

抽出イベントの検証

viewState と eventValidation の値を抽出したので、アプリケーションに POST するときにそれらを含める必要があります。私の実行では、これはログインページでのみ発生しました。

  • テスト計画のレコーディング コントローラーでログイン ページ POST を選択し、
  • __VIEWSTATE パラメータを ${viewState} に設定します。
  • __EVENTVALIDATION パラメータを ${eventValidation} に設定します。

ログインリクエスト内に変数を挿入する

これらのクエリ/ポスト パラメータを持つすべてのリクエストに対して、この操作を実行する必要があります。

于 2017-02-28T10:16:28.800 に答える