0

JMeter に奇妙な問題があります。
なんらかの Web アプリケーションを問題なく記録しました。テストの再生中に問題が発生します。何らかの理由で、再生中と録音中の結果が異なります。

記録中と再生中に作成された Http リクエストを比較すると、単一の違いは見られません (以前のリクエストから抽出してパラメーターとして渡すセキュリティ トークンを除いて)。より正確には、録音中に大きなボディ (>5kB) の応答を受け取り、再生時に応答のボディが空です。応答コードは 200 (OK) です。このボディにはデータベースからの重要なデータが含まれているため、この JMeter スクリプトによる測定はアプリケーションの実際の動作を反映していないのではないかと心配しています。単に、本当に必要なものを測定しないだけです。

今私の質問:

  1. HTTP 要求とその応答の内容をより効果的に表示できるツールまたは JMeter プラグインはありますか? 録音時と再生時のリクエストを比較できたら嬉しいです。これまで、「View Results Tree」という 2 つのリスナーを使用しました。それらの間に挟んで、録音と再生からの要求を比較しました。
  2. 違いを説明できる JMeter の既知のバグはありますか? たとえば、録音プロセスに関連するものはありますか?

リクエストの例は次のとおりです。

POST http://10.133.27.81:8080/c/portal/render_portlet

POST data:
p_l_id=69210&p_p_id=blank_WAR_Blank_INSTANCE_iNM3&p_p_action=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_count=2

[no cookies]

Request Headers:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Accept-Language: pl
Accept: */*
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
csrf_token: 1GXK-0QD7-GFPJ-JLDG-JP2G-J390-BFLG-7LL7
Pragma: no-cache
Method: POST /c/portal/render_portlet HTTP/1.1
X-Requested-With: OWASP CSRFGuard Project
Referer: http://10.133.27.81:8080/group/bou
Accept-Encoding: gzip, deflate
Content-Length: 143
Host: 10.133.27.81:8080

更新: ヘッダーまたはパラメーターが一定であることを確認するために、異なるセッションで同じテスト ケースの 4 つの記録を作成し、それらを比較したのでcsrf_token、他の要求からフェッチされた値を持つフィールドだけで十分であると確信しています。この値が正しくフェッチされることを確認するために、デバッグ サンプラーを追加しました。


更新 2 : 問題が見つかりました。
2つの問題があります:

  1. 検索 (Ctrl-F) を実行すると、JMeter にバグがあり、ヘッダー内にHTTP Header Menager含まれる s と私の要求を除くプロジェクト全体が検索されますcsrf_token(この質問を投稿する前にそれを検出しました)。テキストエディタを使用してxmlで検索を行うことは、そのための良い回避策でした。
  2. 問題の原因を見つけようとすると、問題番号 1 を見つける前に、a を削除して新しい問題を追加しましたHTTP Cookie Manager(これは自分自身と IE のせいです)。

通常、HttpFox アドオンを使用して Internet Explorer を FireFox に変更すると、問題を特定するのに役立ちます。

みんなのサポートに感謝します。

マレク

4

2 に答える 2

1

応答コード200は、すべてがアプリケーションレベルでうまくいったことを意味する必要はありません。

詳細を確認するには、 DebugsamplerDebugPostProcessorを使用できます。ここ
の 例。

于 2012-11-02T19:34:08.040 に答える
0

あなたの問題は、あなたが計算していない動的リクエストパラメータが欠落していることに確かに起因しています。

たとえば、csrf_token ヘッダーを見てください。変数にしましたか? または、最初に記録された値を送信しますが、ページまたはリクエストに存在しないコンテンツを参照するハッシュデータまたは数値データを含むパラメーターでも送信します。

たとえば、col pos には p_p_col_id と関連するパラメーターが表示されますが、リプレイで何かを参照していると確信していますか。

この場合、JMeter のバグの可能性はほとんどありません。

于 2012-11-02T19:33:08.257 に答える