0

私の問題に触れるいくつかの JMeter スレッドを見てきましたが、私の問題に対処しているようには見えません。

問題は、私がテストしている Web サイトが次のように機能することです。

  1. ログオン フィールドと送信ボタンを備えたホームページ。ブラウザでこのページを最初に参照すると、PHPSESSID Cookie が一意の値で設定され (応答ヘッダーに表示されます)、セッションを識別します。
  2. ユーザーがログイン ボタンをクリックすると (このページのユーザー名とパスワードは、システムの現在の状態では無関係です)、Web サーバーは、shibboleth を介して、LDAP を実行している別のサーバーにリダイレクトします。Shibboleth が続行するには、PHPSESSID Cookie の値が必要です。(ユーザーが正しい連合サーバーから来ていることを検証するため)。
  3. 次に、ユーザーはアカウントのユーザー名とパスワードを入力し、ログイン ボタンをクリックします。
  4. (有効な) アカウントが LDAP サーバーにログインします。アカウントが元の (1) サーバーに存在しなかった場合、shibboleth は LDAP フィールドを元のサーバーのアカウント データベースにマップします。次に、ユーザーは元のサーバー (1) に新しく作成されたアカウントにログインし、元のページにリダイレクトされます。

交換される他の SAML データがいくつかありますが、これは問題になるとは思いません。. . これまでのところ、問題はこの Cookie にあるようです。

JMeter が落ちているのはステップ 2 です。

  • Cookie マネージャーを設定しないと、LDAP サーバーは、Cookie が有効になっていないと言います。(このエラーは応答データにあります)。
  • PHPSESSID Cookie を指定せずに HTTP Cookie Manager を設定すると、LDAP サーバーは Cookie が有効になっていないと言います。(どの Cookie ポリシーに設定しても問題ありません)
  • PHPSESSID cookie 値を指定すると、もちろん、各ユーザーは一意の値を持つ必要があるため、これは正しくありません。. . そこで、最初のページに RegExp ポスト プロセッサを設定して、リクエスト ヘッダーから PHPSESSID 値を抽出し、それを変数 ${PHPSession} に配置します。次に、HTTP Cookie Manager で、PHPSESSID Cookie に $ の値を指定します。 {PHPSession} . . . 文字通り、ヘッダーで* * が「Cookie: PHPSESSID=${PHPSession}」を送信します。

それで、私はこれを読みました。. . https://issues.apache.org/bugzilla/show_bug.cgi?id=28715

つまり、(言い換えると) 「... Cookie マネージャーはユーザー変数を展開しません...」、「... わかりました、修正しました... ユーザー変数を展開します...」、そして「. ..いいえ、そのフィールドではありません。それを行うように設計されていません。」

つまり...基本的に、HTTP Cookie Managerは各ユーザーに固有の値を持つセッションCookieを管理できないと言っています。(とはいえ、これが全体の目的だと思っていたものです)。

最初の応答ヘッダーから値が抽出された各ユーザーに一意の Cookie を設定して送信するには、他にどのようにすればよいですか?

4

1 に答える 1

0

これはおそらく、最近の負荷テストのプログラミングで最も難しい作業です。あなたの問題は、サーバーで LDAP 認証を正しく行わなかったことに関連している可能性があります。つまり、毎回新しいセッション ID を渡していないということです。ステップ 2 とスクリプトの後半で使用するために、LDAP リクエスト サンプラーを使用してそのようにトークンを渡す方法を見てください。全力を尽くして LDAP リクエストを作成し、アプリケーションを実際に実行することができます。これがあなたの問題に光を当てることを願っています!

于 2012-12-12T18:27:01.050 に答える