JMeter; сессионный cookie - PullRequest
       7

JMeter; сессионный cookie

0 голосов
/ 30 ноября 2011

Я видел несколько тем JMeter, которые касались моей проблемы, но ни одна из них не решает мою конкретную проблему.

Проблема в том, что веб-сайт, который я тестирую, работает так:

  1. Домашняя страница с полями входа и кнопкой отправки. Когда ты первый перейдите на эту страницу в браузере, файл cookie PHPSESSID устанавливается (попадает в заголовок ответа) с Уникальное значение, чтобы идентифицировать сеанс.
  2. Когда пользователь нажимает кнопку входа (имя пользователя и пароль включены эта страница не имеет отношения к текущему состоянию системы), веб Сервер перенаправляет на другой сервер, на котором работает LDAP, через shibboleth. Для продолжения Shibboleth необходимо значение файла cookie PHPSESSID. (чтобы проверить, что пользователь приходит с правильного федеративного сервера).
  3. Затем пользователь вводит имя пользователя и пароль своей учетной записи и нажимает кнопка входа в систему.
  4. (действительная) учетная запись вошла на сервер LDAP; если аккаунт не существовало на исходном (1) сервере, тогда Shibboleth отображает Поля LDAP передаются в базу данных учетных записей на исходном сервере. Затем пользователь входит на исходный сервер (1) в только что созданная учетная запись и перенаправленная на исходную страницу.

Есть некоторые другие данные SAML, которыми обмениваются - но я не думаю, что это будет проблемой. , , до сих пор проблема, похоже, заключается в этом cookie.

Там, где падает JMeter, находится шаг 2.

  • Если я не устанавливаю менеджер файлов cookie, сервер LDAP сообщает, что я не включить куки. (эта ошибка в данных ответа).
  • Если я установлю менеджер файлов cookie HTTP, без указания файла cookie PHPSESSID, сервер LDAP говорит, что у меня не включены куки. (не имеет значения, какую Политику Cookie я установил)
  • Если я укажу значение файла cookie PHPSESSID - конечно, каждому пользователю нужно иметь уникальное значение, так что это будет неправильно. , , Итак, я установил RegExp постпроцессор для начальной страницы, чтобы извлечь PHPSESSID значение из заголовка запроса и поместите его в переменную $ {PHPSession} Затем я указываю значение в HTTP Cookie Manager для Файл cookie PHPSESSID, $ {PHPSession}. , , и буквально, в заголовок, элемент ** отправляет сообщение «Cookie: PHPSESSID = $ {PHPSession}»

Итак, я прочитал ЭТО. , , https://issues.apache.org/bugzilla/show_bug.cgi?id=28715

Что говорит, по сути, (перефразируя) "... менеджер cookie не расширяет пользовательские переменные ..." затем "... хорошо, мы исправили это ... он расширяет пользовательские переменные ..." тогда "... ну, нет, не в этой области, она не предназначена для этой цели".

Итак ... по сути, говорят, что HTTP Cookie Manager не может управлять сеансовыми cookie, которые имеют уникальное значение для каждого пользователя. (хотя я думал, что это была целая цель).

Как еще можно установить и отправить уникальный файл cookie для каждого пользователя, значение которого извлекается из первого заголовка ответа?

1 Ответ

0 голосов
/ 12 декабря 2012

Это, пожалуй, самая сложная задача программирования нагрузочного теста в наши дни. Я бы сказал, что ваша проблема может быть связана с тем, что вы не смогли выполнить аутентификацию LDAP с сервером, то есть не каждый раз передавать новый идентификационный номер. Посмотрите, как использовать сэмплер LDAP Request для передачи токена таким образом, как на шаге 2, так и для последующего использования в скрипте. Вы можете изо всех сил и создавать запросы LDAP, чтобы реально использовать ваше приложение. Надеюсь, это проливает свет на вашу проблему!

...