2016-08-19 6 views
0

負荷テストでは、動的変数(javax.faces.ViewState)を使用する必要がある状況で実行しました。JMeter 3.0でのXPathも正規表現の作業もありません

解決策は、XPathまたは正規表現エクストラクタを使用することです。

それらの両方が動作しませんでした(... & javax.faces.ViewState =%24%7Bvar1%の7D):変数の

enter image description here

enter image description here

値I使用している

<input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="(.+?)"autocomplete="off" />

//input[@id='javax.faces.ViewState']/@value

出典:http://se7so.blogspot.com/2012/12/apache-jmeter-along-with-jsf-pages.html

UPDATE1:

JSFによって生成されたパラメータ:

enter image description here

アップデート2

グーグルクロームのコンソールを使用する:

enter image description here

私は何を逃したのですか?

+1

最初の画面で、XPath抽出フォームに正規表現を入力します。 XPath Extractorに '/input[@id='javax.faces.ViewState ']/@ value'を置くと、ページにそのような' input'があれば動作します。 –

+1

[Regular Expression Extractor](http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor)を使用して実際に試しましたか?応答データも見ておくと便利です... –

+0

@WiktorStribiżew、それはうまくいかず、私は質問を更新しました。 $ {var1}は依然として誤解されています。 –

答えて

1

Regular Expression Extractorに正規表現としてこれを使用してみてください:

入力タイプ= "隠された" 名前= "javax.faces.ViewState" ID = "javax.faces.ViewState" 値を= "(+。? )」

Hereこれは動作していることがわかります。

Regular Expression Extractor

  • <input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="(.+?)" autocomplete="off" /> 
    

    デモ:あなたは彼らがspecial charactersとして扱われる可能性があるとしてカンマをエスケープするので、次の正規表現を使用する必要がある正規表現の

  • 2
    1. あなたの応答がXML/XHTMLに準拠していない場合は、XPath Extractorをチェックしてください。Use Tidyボックスをチェックする必要があります。 i "通常の" HTML。ところで

    Xpath Demo

    、あなたは、 View Results Treeリスナーを使用してテストを再実行して詳細については How to Debug your Apache JMeter Scriptをチェックアウトすることなく、定期的な、XPathの、CSS、ライブサーバーの応答に対するJSONPath式を検証することができます。

    +0

    問題は、私はいつもURLを取得するということです?javax.faces.ViewState = $ {var1}、私はデフォルト値" NOTFOUND "を言いましたが。 $ {var1}は変数ではなくハードコードされた値とみなされます。 –

    +0

    JMeter変数は**スレッドグループの**ローカル**です。この 'ViewState'値を別のスレッドグループで再利用する場合、[__setProperty()](https://)経由でJMeterプロパティに変換する必要があります。 jmeter.apache.org/usermanual/functions.html#__setProperty)関数を呼び出します。手順については、[別のスレッドグループで変数を使用する方法](https://www.blazemeter.com/blog/knit-one-pearl-two-how-use-variables-different-thread-groups)の記事を参照してください。 –

    関連する問題