私の問題に触れるいくつかの JMeter スレッドを見てきましたが、私の問題に対処しているようには見えません。
問題は、私がテストしている Web サイトが次のように機能することです。
- ログオン フィールドと送信ボタンを備えたホームページ。ブラウザでこのページを最初に参照すると、PHPSESSID Cookie が一意の値で設定され (応答ヘッダーに表示されます)、セッションを識別します。
- ユーザーがログイン ボタンをクリックすると (このページのユーザー名とパスワードは、システムの現在の状態では無関係です)、Web サーバーは、shibboleth を介して、LDAP を実行している別のサーバーにリダイレクトします。Shibboleth が続行するには、PHPSESSID Cookie の値が必要です。(ユーザーが正しい連合サーバーから来ていることを検証するため)。
- 次に、ユーザーはアカウントのユーザー名とパスワードを入力し、ログイン ボタンをクリックします。
- (有効な) アカウントが 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 を設定して送信するには、他にどのようにすればよいですか?