2

Jmeterは正規表現で値を正しく抽出していません。
次のhtmlを使用して正規表現コーチでこの正規表現を使用する(NAME="token" \s value="([^"]+?)")と、すべてが正常に機能しますが、要求に正規表現エクストラターを使用して正規表現を追加すると、出力で同じhtmlであっても値が見つかりません。

<HTML>
<script type="text/javascript">
    function dostuff(no, applicationID)
    {
        submitAction('APPS_NAME' , 'noSelected=' + no + '&applicationID=' + applicationID);
    }
</script>

<FORM NAME="baseForm" ACTION="" METHOD="POST">
    <input type="hidden" NAME="token" value="fc95985af8aa5143a7b1d4fda6759a74" >

<div id="loader" align="center">
        <div>
            <strong style="color: #003366;">Loading...</strong>
        </div>
        <img src="images/initial-loader.gif" align="top"/>
    </div>

<BODY ONLOAD="dostuff('69489','test');">

</FORM>
</HTML>  

正規表現エクストラクタから

Reference Name: token
Regular Expression: (NAME="token" \s value="([^"]+?)")
Template: $1$
Match No.: 1
Default value: wrong-token

前のコードのPOSTに続くリクエストが返されます:

POST data:
token=wrong-token

ツリービューアの次のリクエストで。

しかし、プロキシで実際のリクエストを確認すると、トークンがそこにあります。

注:ブラケットなしで正規表現を試しましたが、どちらも機能しませんでした。

誰かがここで何が悪いのか考えていますか?
jmeterが正規表現エクストラターでトークンを見つけられないのはなぜですか?

4

3 に答える 3

3

正規表現は、テキストNAME="token"、スペース、スペース、タブ、または改行、スペース、テキストvalue="、1つ以上の非引用符文字、別の文字を検索します"

表示している文字列でそれが見つからない場合(およびテキストサンプルが一致しない場合)、失敗します。

あなたは本当に何をしようとしていますか?HTMLを正規表現で解析しているようです。良い考えではありません。

于 2010-05-11T18:22:39.183 に答える
2

正規表現Extractorの代わりにXPathExtractorを使用できる可能性があります。

xpathクエリは、抽出する値を返す必要があります。
この場合、次のようになります。

//input[@type="hidden"][@name="token"]/@value

抽出された値は、XPath Extractorの「参照名」フィールドを指すjmeter変数に格納されます(たとえば${token}、あなたの場合)。


注:ここではXPath Extractorを使用してHTML(XMLではなく)応答を解析するため、Use Tidy(tolerant parser)オプションがチェックされていることを確認してください(XPath Extractorのコントロールパネルで)。

于 2012-10-15T20:09:35.670 に答える
1

次のように正規表現形式を更新する必要があります。

Reference Name: token
Regular Expression: NAME="token"\svalue="(.+)"
Template: $1$
Match No.: 1
Default value: wrong-token
于 2014-11-27T13:42:39.100 に答える