Это может быть дубликатом https://stackoverflow.com/questions/40514004/jmeter-how-to-send-get-request-with-body-data

Но несмотря на то, что ребята ответили на этот вопрос, утверждая, что он решен в версии 3.1 JMeter, он не работает, как я ожидал, в JMeter 5.0.

Я также попытался установить Content-Type: application/x-www-form-urlencoded на диспетчере HTTP-запросов, связанном с сэмплером HTTP-запросов, но тело передается только для POST-запросов. Мое приложение приятно получает от Почтальона, но не от JMeter.

Нет EDIT: Это фрагмент кода генерируется Почтальон: GET /api/patients/5c1e35351f68df799c0ad864/cases HTTP/1.1 Host: localhost:3080 Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InJ1YmVubWFycXVlczkxQGdtYWlsLmNvbSIsInVzZXJJZCI6IjVjMjNiZTJkNjU0YjIwMzhiNDQwY2ViZiIsImlhdCI6MTU0NjAxMjQ2NSwiZXhwIjoxNTQ2MDE2MDY1fQ.LqCV9eHByxQ0ubDIcJOwR0WGGXfMw49X0VLLurjbseM cache-control: no-cache Postman-Token: 2d8f4f4c-4ec6-428e-bf1a-cafd27fa98ed { "caseName": "TestName" }------WebKitFormBoundary7MA4YWxkTrZu0gW--

2 ответа2

1

Что именно не работает? Например, учитывая следующую полезную нагрузку Elastic search:

{
  "index": {
    "_index": "shakespeare",
    "_type": "act",
    "_id": 0
  }
}
{
  "line_id": 1,
  "play_name": "Henry IV",
  "speech_number": "",
  "line_number": "",
  "speaker": "",
  "text_entry": "ACT I"
}

Когда я выполняю следующий запрос GET:

{
  "query": {
    "match": {
      "play_name": "Henry IV"
    }
  }
}

Я вижу тело запроса точно так, как я определил в прослушивателе дерева результатов просмотра

И ответ содержит все соответствующие результаты поиска:


Поэтому я бы порекомендовал сравнить запросы, которые отправляются Почтальоном и JMeter, используя инструмент анализатора, такой как Fiddler или Wireshark. Скорее всего, в конфигурации JMeter есть ошибка, предположительно связанная с неверным Content-Type


Также имейте в виду, что можно записать запрос, отправленный почтальоном, используя HTTP(S) Test Scor Recorder от JMeter

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

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

    • В главном меню Почтальона выберите File -> Settings -> Proxy
    • установите флажки для протоколов HTTP и HTTPS и установите для прокси-сервера значение 127.0.0.1:8888

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

  4. JMeter должен захватить его под контроллером записи. Если все идет хорошо, вы сможете воспроизвести его без проблем.
0

Проблема была в конфигурации JMeter. Я использовал вкладку «Параметры» HTTP-запроса и помещал свойства на вкладку «Имя» и значения на вкладку «Значение».

Иллюстрированный пользователь опубликовал это: https://stackoverflow.com/a/51609079/3267330.

Я не знаю, почему мой первоначальный подход работал с запросами POST, PATCH и PUT, а не с GET-запросами, но сейчас я просто придерживаюсь того, чтобы поместить все мои запросы на вкладку Body Data и создать заголовок с Content-Type: application/json потому что это работает!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .