Перейти к содержимому

Фотография

Не передается параметр из респонса в реквест


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Olen'ka

Olen'ka

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • Город:Питер

Отправлено 14 октября 2013 - 14:00

Задача: тестирования логина на сайте
http request'ы записываются через jmeter -- http proxy server

При воспроизведении сценария параметры GET запроса (session id) и cookies, относящие к авторизации,
берутся из записанного ранее.

Каким образом изменить конфигурацию тест плана, чтобы session id и аутентификационные cookies подставлялись в запросы из переданных сервером ?

Пробовала через Regular Expression Extractor извлечь из респонса параметр sessionid и затем прописать его как параметр в последующем реквесте.
Но параметр не подставляется, во view result tree получается следующее http://...../sessionid=${sessionid}
  • 0

#2 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 14 октября 2013 - 14:45

Покажите как вы подставляете этот параметр?
  • 0

#3 Olen'ka

Olen'ka

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • Город:Питер

Отправлено 15 октября 2013 - 09:21

Покажите как вы подставляете этот параметр?

1. сначала я через regular expression extractor создаю переменную JSESSIONID.
2. Забираю из респонса JSESSIONID=([-a-zA-Z0-9]+)?
2. Подставляю в http request как параметр
jsessionid ${jsessionid}
я скриншот приложила

Прикрепленные файлы

  • Прикрепленный файл  Http request.jpg   75,54К   55 Количество загрузок:
  • Прикрепленный файл  redexpextr.jpg   85,57К   51 Количество загрузок:

  • 0

#4 fesd

fesd

    Опытный участник

  • Members
  • PipPipPipPip
  • 262 сообщений

Отправлено 15 октября 2013 - 11:28

попробуйте template=$1$.
и вообще можно посмотреть содержимое ваших переменных с помощью debug sampler.
  • 0

#5 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 15 октября 2013 - 13:20


Покажите как вы подставляете этот параметр?

1. сначала я через regular expression extractor создаю переменную JSESSIONID.
2. Забираю из респонса JSESSIONID=([-a-zA-Z0-9]+)?
2. Подставляю в http request как параметр
jsessionid ${jsessionid}
я скриншот приложила


Абсолютно согласен с fesd.
  • 0

#6 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 15 октября 2013 - 23:18

В вашем случае, вряд ли, имеет смысл заморачиваться с регулярными выражениями, ведь JSESSIONID - это кука. Можно просто добавить Cookie Manager (а он, скорее всего, и так уже есть), в properties Jmeter'a добавить CookieManager.save.cookies=true и дальше получать значение куки так ${COOKIE_JSESSIONID}
Если все же хочется регулярных выражений, то:
- можно искать только по Headers
- выражение можно записать как JSESSIONID=(\w+)?
- в темплейте должно быть $1$
  • 0

#7 Olen'ka

Olen'ka

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • Город:Питер

Отправлено 16 октября 2013 - 12:00

В вашем случае, вряд ли, имеет смысл заморачиваться с регулярными выражениями, ведь JSESSIONID - это кука. Можно просто добавить Cookie Manager (а он, скорее всего, и так уже есть), в properties Jmeter'a добавить CookieManager.save.cookies=true и дальше получать значение куки так ${COOKIE_JSESSIONID}
Если все же хочется регулярных выражений, то:
- можно искать только по Headers
- выражение можно записать как JSESSIONID=(\w+)?
- в темплейте должно быть $1$


1. Cookie Manager добавила
2. В пропертях поставила значение


3. не понимаю что значит "дальше получать значение куки так ${COOKIE_JSESSIONID}"
поясните, пожалуйста
  • 0

#8 Vader

Vader

    Активный участник

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 16 октября 2013 - 12:08

3. не понимаю что значит "дальше получать значение куки так ${COOKIE_JSESSIONID}"
поясните, пожалуйста

Это значит, что в value параметра, в который вы раньше пытались подставить результат регулярки, теперь пишете ${COOKIE_JSESSIONID} вместо ${jsessionid}
  • 0

#9 Olen'ka

Olen'ka

    Новый участник

  • Members
  • Pip
  • 11 сообщений
  • Город:Питер

Отправлено 16 октября 2013 - 12:59


3. не понимаю что значит "дальше получать значение куки так ${COOKIE_JSESSIONID}"
поясните, пожалуйста

Это значит, что в value параметра, в который вы раньше пытались подставить результат регулярки, теперь пишете ${COOKIE_JSESSIONID} вместо ${jsessionid}


Использую liferay & jmeter
из респонса первого http request забираю jsessionid=B435CD5D66B9C6DC94936182DD7EE0FF
дальше через описанную схему с cookies передаю его в следующий реквест. и получаю следующее

в http request
POST http://....
POST data:
_58_formDate=1381924536319&jsession=B435CD5D66B9C6DC94936182DD7EE0FF
Cookie Data:
JSESSIONID=B435CD5D66B9C6DC94936182DD7EE0FF;

в response
Response headers:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Content-Encoding: gzip
Set-Cookie: JSESSIONID=C4DBAA4FD055CF9A23CEBA0182732477; Path=/; HttpOnly

почему так ?
получается, что jmeter считает, что переход по линкам на одной странице - это новая сессия. кто сталкивался ?
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных