2016-05-11 6 views
2

Я пытаюсь сделать POST в jmeter с json как данные тела, но я просто получаю обратно 400. URL-адрес, который я отправляю, также принимает только json. Я использовал тот же скручивание в Postman, и он работал нормально. Я попытался поставить json в параметры как значение без имени, и это не сработало.Jmeter не отправляет данные JSON в POST

[1]: http://i.stack.imgur.com/1sAdO.png

Я просто пытаюсь отправить { "UID": "jmtest", "имя": "newdevice"}.

жаль, что я не могу опубликовать больше ссылок так

Результат пробоотборник

Thread Name: QA test 1-1 Sample Start: 2016-05-11 11:50:19 MDT Load time: 86 Connect Time: 51 Latency: 86 Size in bytes: 282 Headers size in bytes: 244 Body size in bytes: 38 Sample Count: 1 Error Count: 1 Data type ("text"|"bin"|""): text Response code: 400 Response message: Bad Request Response headers: HTTP/1.1 400 Bad Request Server: nginx Date: Wed, 11 May 2016 17:50:19 GMT Content-Type: application/json; charset=utf-8 Content-Length: 38 Connection: keep-alive X-Request-Id: 88339ee9-b74f-4e22-b581-e3124949d067 X-Runtime: 0.030877 HTTPSampleResult fields: ContentType: application/json; charset=utf-8 DataEncoding: utf-8

запрос выглядит

POST https://po-qa-synchronicity.moneydesktop.com/devices POST data: {"devices":{"uid":"jmtest","name":"newdevice"} [no cookies] Request Headers: Connection: keep-alive Accept: application/vnd.moneydesktop.v2+json Content_Type: application/json MD-SESSION-TOKEN: _WOkaTcW1S-TNWgpWZ6yj4LLzbMe7Is8Ajhdc05wQl8GQw1GQZEjNERwq-BWvDkellNUbDcJZZl0vbijbGqxOA Content-Type: application/x-www-form-urlencoded Content-Length: 46 Host: po-qa-synchronicity.moneydesktop.com User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_72)

и данные отклика { : "status":"400", : "error":"Bad Request" }

+0

У меня есть Content-Type, заданный как application/json. Я попробовал это в данных тела, но это тоже не сработало. –

ответ

2
  1. Убедитесь, что ваш HTTP Header Manager настроен на отправку Content-Type заголовка со значением application/json
  2. Учитывая у вас есть пробники, как «домашней страницы» и «логин», это может быть случай, если вы не хватает HTTP Cookie Manager
  3. самый простой способ увидеть, что не так, - захватить запросы, отправленные Postman (независимо от того, что это) и JMeter с помощью инструмента sniffer, например Wireshark, определить различия и настроить JMeter соответственно.
  4. Наконец, похоже, что вы используете некоторый снимок разработчика, поэтому подход к передаче полезной нагрузки JSON в качестве первого аргумента без имени может не работать. Вместо этого попробуйте переключиться на «данные тела».
  5. Если вышеуказанные шаги не помогут обновить ваш вопрос скриншотами View Results Tree слушателя (все 3 вкладки) и Почтальон

ЗАКАНЧИВАТЬ Testing SOAP/REST Web Services Using JMeter больше советов.

0

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

+0

Раньше я запускал его в данных тела. Я просто попытался с ним установить как java, но это не сработало. Если мой токен был недействителен, он дал бы мне 401 вместо 400. –

+0

вы могли бы попробовать очистить кодировку контента? Я мог бы сказать, что мы используем json-запросы только с данными post, параметры не работают для моего api. –

0

В соответствии с вашим прикрепленным ПОС, Вы вставили запрос в queryparameters, полезная нагрузка должна быть в части тела

проверить скриншот у вас есть полезная нагрузка в разделе queryParam

1

Я понял мою проблему. Я установил Content_type вместо Content-Type, чтобы создать два заголовка типа контента.

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