6

JMeter を使用して JSF アプリケーションでいくつかの負荷テストを行っていますが、ページに沿って ViewState を渡すのに問題があります。ViewState 変数がまったく抽出されないか、ページに渡されません。

プロキシ サーバーを使用してテスト ステップを記録しました。これは次のようになります。

最初の GET リクエスト

最初の GET リクエストに正規表現エクストラクタを追加しました。正規表現をテストしましたが、正しいです。

最初の POST リクエスト

すべての POST リクエストで、ハードワイヤード ビュー ID を自分の変数に置き換えます。

そして、リクエストを送信したときに得られるのは次のとおりです。

リクエストを送信しました

変数の名前を送信するため、POST パラメーターは正しくありません。

投稿データ:

loginForm%3ArequestToken=&loginForm%3Ausername=heller&loginForm%3Apassword=%21QAYxsw2%A7EDC&loginForm%3AloginButton=アンメルデン& com.sun.faces.VIEW=%24%7BjsfViewState%7D &loginForm=loginForm

ここで私が間違っていることを教えていただけますか?
ありがとう!

4

2 に答える 2

2

私の問題を見つけました:正規表現が間違っていたので、応答に何も見つかりませんでした。正規表現を変更する必要がありました。デフォルト値「NOTFOUND」を追加した後、それに気づきました。

于 2013-02-28T17:00:14.787 に答える
2

ViewState パラメーターはエンコードされた値 (Base64 だと思いますか?) であり、URL を介して GET 要求で渡された場合に不適切な値が含まれている可能性があります。URL パラメーターは通常、要求がサーバーに到達したときに特別な値 (スペース -> %20 など) を表現およびデコードできるようにエンコードされます。

ここでの問題は、次のリクエストが POST であることです。つまり、パラメーターを URL エンコードする必要はありません。

com.sun.faces.VIEW=%24%7BjsfViewState%7D&loginForm=loginForm

上記は、JMeter またはその他のプロセスが、リクエスト内の ViewState を間違った URL でエンコードしていることを示しています。ViewState の値はそのまま送信する必要があります。

于 2013-02-28T13:05:55.153 に答える