2016-03-14 2 views
0

Я до сих пор несколько новичок в JMeter, а не программистом по профессии. (Я, как правило, BA/QA, который понимает программирование OO и взял несколько программных курсов.) Я выполняю тестирование API через сервисные звонки REST в/из нашей базы данных с несколькими арендаторами.JMeter: POST Импорт не работает как у клиента REST

Я пытаюсь выполнить IMPORT через JMeter, и у меня возникают трудности. Я могу успешно делать это через клиентов REST, таких как Postman и Advanced REST Client, но когда я пытаюсь настроить его в JMeter, он терпит неудачу.

В Постмане, конфигурация:

Postman Import Config

Это успешные 100% от времени, как показано в базе данных.

Postman Import Results

В JMeter я пытаюсь повторить конфигурацию следующим образом:

HTTP Header Менеджер

JMeter Header Mgr

HTTP Request

JMeter HTTP Request

Для MIME типа, я пытался "приложение/vnd.ms-Excel", "vnd.openxmlformats-officedocument.spreadsheetml.sheet", и нуль - все без успеха.

Я пытался добавить дополнительные значения заголовка в различных комбинациях без успеха:

  • Content-Disposition: приложение/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • Content-Type: приложения /vnd.ms-excel

Любые мысли, комментарии, проницательность, возможные решения оценены.

ответ

1

Если у вас есть несоответствия w.r.t JMeter и браузер или другие инструменты, лучший способ разобраться в различиях - это захват запросов от JMeter и браузера (или другого инструмента) с помощью сниффера, например Wireshark, обнаружения и устранения различий.

Что касается вашего случая, в JMeter:

  1. Удалить Менеджер заголовка HTTP (или по крайней мере Content-Type: multipart/form-data заголовка)
  2. В HTTP запроса:

    • ПроверитьUse multipart/form-data for POST
    • MIME Тип: application/vnd.ms-excel

См Performance testing: Upload and Download Scenarios with Apache JMeter статьи подробных инструкций о том, как правильно моделировать операции с файлами в вашем JMeter тесте

+0

Спасибо. После удаления многочастных/форм-данных из заголовка и добавления MIME-типа он все равно не работает. Я полагаю, что проблема может быть между «родительским» HTTP Header Manager (на уровне плана тестирования), содержащим «Content-Type: json» и HTTP Header Manager для группы Thread, где «Content-Type: application/vnd.ms- первенствует. Я замечаю, что в протоколе граница не устанавливается. (например, 'Content-Type: multipart/form-data; border = P-oTFP1H-Auu7r0eIScXr7Mfg4dq8MgZMp3haR9c') Вместо этого я получаю' Content-Type: application/vnd.ms-excel'. Я попробую загрузить Wireshark. – David

+0

** Обновление **: проблема связана с «родительским» заголовком Mgr («Content-Type: application/json') и« дочерними »заголовками Mgrs. Переключение с «родительского» заголовка Mgr, импорт работает отлично. Если я снова включу «родительский», он терпит неудачу. Есть ли лучшая практика, когда мне не нужно указывать содержимое родительского заголовка Mgr. в каждой группе потоков, чтобы избежать этого? – David

+0

Получил работу. ** Мне пришлось удалить Header Mgr на уровне плана тестирования и вместо этого скопировать его в каждую группу потоков в рамках плана тестирования **. Поэтому вместо того, чтобы иметь один раз «Content-Type: application/json», теперь у меня есть _32 раза_ (1 на группу нитей), поэтому группы потоков, содержащие экспорт и импорт, могут иметь отдельные заголовки Mgr, которые не сталкиваются с какой- уровня. _Персонально, я думаю, что это плохая практика, но я не могу заставить JMeter не уважать Megs верхнего уровня на уровне более высокого уровня. – David

Смежные вопросы