Размещать запрос всегда возвращая ошибку в JMeter - PullRequest
0 голосов
/ 08 февраля 2020

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

Сценарий был записан с расширением BlazeMeter Chrome и, при необходимости, настроен.

Следующие конфигурации относятся к Плану тестирования в целом:

  • Диспетчер заголовков HTTP с заголовком "Пользователь-агент".
  • Определяемые пользователем переменные только с одной переменной "BASE_URL_1".
  • HTTP-запрос по умолчанию с выбранными «Извлечь все встроенные ресурсы» и «Параллельные загрузки» и «Число» установлено в 6.
  • Диспетчер кэширования DNS с «Очистить кэш» каждая итерация "выбрана и" Использовать системный DNS-преобразователь ".
  • Диспетчер авторизации HTTP без выбора.
  • HTTP Cook ie Диспетчер с «Очистить куки каждый итерация?»
  • Диспетчер кэширования HTTP с надписью «Очистить кэш на каждую итерацию?» выбрано и «Максимальное количество элементов в кэше» установлено на 5000.

Я установил для «CookieManager.save.cookies» значение «true» в «jmeter.properties» .

Вот изображение того, как выглядит «HTTP-запрос»:

Image of the Post HTTP Request

Внутри «HTTP-запроса» есть «Диспетчер заголовков HTTP» со следующими заголовками:

Image of the HTTP Header Manager

Внутри «HTTP-запроса» есть также a «Унифицированный случайный таймер» с «Максимумом случайной задержки», установленным на 26344.0, и «Смещением постоянной задержки», установленным на 13172.

Кажется, что файлы cookie отправлены в порядке с данными сеанса. Я вхожу в систему пользователя и получаю данные сеанса, прежде чем пытаться выполнить запрос post, и другие запросы get работают нормально в том же сеансе. Я проверяю эти же заголовки с Почтальоном, и это сработало. Я понятия не имею, почему это не работает в JMeter. Я попытался сделать несколько изменений в конфигурации без успеха. Это сервис. NET.

API построен не лучшим образом, но что заставляет меня думать, что эта ошибка 500 может быть из-за JMeter, а не из-за того, что я смог успешно сделать запрос от почтальона.

Кто-нибудь имеет представление о том, что может быть не так в конфигурации теста?

РЕДАКТИРОВАТЬ

Вот некоторые изображения из дерева результатов просмотра:

Результат выборки Sampler Result

Тело запроса Request Body

Заголовки запроса Request Headers

Заголовки ответа Response Headers

Тело ответа - HTML, сообщающее об ошибке.

1 Ответ

1 голос
/ 10 февраля 2020

Если ваш запрос работает в Почтальоне, вы сможете записать его, используя JMeter HTTP (S) Test Script Recorder .

  1. Подготовьте JMeter к записи, самый быстрый и простой способ - использовать Функция шаблонов JMeter

    • В главном меню JMeter выберите File -> Template -> Recording и нажмите «Создать»
    • Откройте HTTP (S) Test Script Recorder и нажмите «Пуск»
  2. Подготовка почтальона для записи,

    • В главном меню Почтальона выберите File -> Settings -> Proxy
    • Используйте 127.0.0.1 в качестве хоста прокси и 8888 в качестве порта прокси

      enter image description here

  3. Выполните ваш запрос в Почтальоне

  4. JMeter перехватит запрос под контроллером записи
  5. Параметризация и корреляция запрос
  6. Он должен работать нормально. Если нет - сравните запросы, которые отправляются Postman и JMeter с помощью стороннего анализатора, такого как Wireshark из Fiddler , выявляйте и устраняйте любые несоответствия.
...