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

Фотография

Jmeter Response code: 302 / 400


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

#1 penumbra_gestalt

penumbra_gestalt

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Москва

Отправлено 15 марта 2017 - 14:25

Всем привет!

Я только начал работать с jmeter, потому мой вопрос может быть не совсем компетентен, но тем не менее хотел бы прояснить ситуацию. Есть задача: создать нагрузочный тест по простому сценарию:

1) Пользователь авторизовался на ресурсе

2) Перешел в некоторый раздел

3) Создал новую запись

4) Перешёл в следующий раздел.

 

Уже на этапе записи скрипта (HTTP(S) Test Script Recorder) в логе обнаружил некоторую странность: после авторизации и прочих переходов по ресурсу постоянно происходит редирект на страницу логина.

И возвращает код 302.

Response data
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="https://site_name.com/new/site/login">here</a></body>
https://site_name.com/new/site/login - естественно совпадает с тем, что имеется в запросе.

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

Ко всем прочему на п.3 (Создал новую запись) вижу код 400

Проделал те же операции вручную наблюдая за ответами - не увидел таких ошибок.

ЧЯДНТ?

Заранее спасибо за ваши ответы.

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

  • Прикрепленный файл  063_redir.png   10,74К   0 Количество загрузок:
  • Прикрепленный файл  064_c302.png   2,04К   0 Количество загрузок:
  • Прикрепленный файл  065_c400.png   1,62К   0 Количество загрузок:

  • 0

#2 checo

checo

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

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 16 марта 2017 - 07:26

Все правильно, пользователь не авторизован, поэтому редиректит на логин.
Что значит "не реальный, а виртуальный"? На сайте какой-то отдельный механизм работы с виртуальными пользователями?
Как при нормальной работе в браузере подтверждается авторизация: куки? какие-то другие заголовки или параметры? Вы их передаете в запросах JMeter?
  • 0

#3 penumbra_gestalt

penumbra_gestalt

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Москва

Отправлено 16 марта 2017 - 08:13

На сайте нет отдельного механизма работы реальными/виртуальными пользователями. HTTP Cookie Manager и CSV Data Set Config внесены в Thread Group.


  • 0

#4 Alex

Alex

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

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 16 марта 2017 - 08:29

На сайте нет отдельного механизма работы реальными/виртуальными пользователями. HTTP Cookie Manager и CSV Data Set Config внесены в Thread Group.

Так а само действие по авторизации (запрос(ы)) есть в скрипте? Если Jmeter по каким-то причинам не смог их записать, то надо добавить руками.

+ Проделайте вручную именно авторизацию и сравните запросы/ответы браузера и Jmeter.

 

В 9 случаях из 10 проблема будет в том, что не передаются какие-то специфичные заголовки.


  • 0

#5 penumbra_gestalt

penumbra_gestalt

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Москва

Отправлено 16 марта 2017 - 11:39

Как я понял - по каким-то причинам не передаются куки при авторизации.

Set-Cookie: PHPSESSID=gokamd63rr7j0ohgemjludqjj1; path=/

Хотя, по я установил св-во в jmeter.properties  - CookieManager.check.cookies=false

 

Потому и происходит редирект - нет отправки кук. Как это можно исправить?


  • 0

#6 checo

checo

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

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 16 марта 2017 - 19:14

Да, очень странно. Как выше писали, надо сравнивать все запросы и ответы при работе в браузере и искать отличия.
Как экзотический вариант, при логине куки могут приходить не в заголовках, а в составе данных, а клиентский скрипт их извлекает и устанавливает.
  • 0

#7 penumbra_gestalt

penumbra_gestalt

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Москва

Отправлено 20 марта 2017 - 13:44

Проблема решена путем долгого копания форумов и мануалов. Изложу своё, мало ли кому-то понадобится?

 

При переходе на страницу авторизации пользователя в HTTP Request добавим Regular Expression Extractor (Add - Post Processors - Regular Expression Extractor). Заполняем поля на форме. В каждому конкретном случае поля могут отличаться. В моем случае, например, пришлось объявить YII_CSRF_TOKEN переменной и далее в каждый HTTP Request, именно так её и обозначать ${YII_CSRF_TOKEN} . В принципе всё. Это решило проблему.

Ссылки которые помогли мне: первая, вторая


  • 0


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

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