programing

Jmeter가 POST 중에 JSON 데이터를 전송하지 않음

megabox 2023. 2. 28. 23:23
반응형

Jmeter가 POST 중에 JSON 데이터를 전송하지 않음

json을 본문 데이터로 jmeter로 POST를 하려고 하는데 400만 돌려받았습니다.보내는 URL은 json만 받습니다.우체국에서도 같은 컬을 사용했는데 잘 작동했어요.파라미터에 json을 이름이 없는 값으로 입력하려고 했지만 작동하지 않았습니다.

1

{"uid":"jmtest", name":"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

그리고 그 요청은

/url redacted
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: redacted
Content-Type: application/x-www-form-urlencoded
Content-Length: 46
Host: redacted
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_72)

반응 데이터는

{
:   "status":"400",
:   "error":"Bad Request"
}

JSON 데이터를 본문에 삽입하여 POST HTTP 요청을 전송하려면 다음 항목을 추가해야 합니다.

  • HTTP Header Manager를 요청에 넣고 이름을 'content-type'으로, 값을 'application/json'으로 설정합니다.이것은 HTTP 요청 헤더에 첨부되며, 요청 본문 내의 데이터는 json 형식으로 전송됩니다.

이미지 1: HTTP 헤더 매니저 설정,

이미지 2:HTTP 요청 본문 데이터 설정

  1. HTTP Header Manager가 다음을 전송하도록 구성되어 있는지 확인합니다.Content-Type값을 가진 헤더application/json
  2. "홈 페이지" 및 "로그인"과 같은 샘플러가 있는 경우 HTTP Cookie Manager가 없을 수 있습니다.
  3. 무엇이 문제인지 확인하는 가장 간단한 방법은 Wireshark와 같은 순이파 툴을 통해 Postman(무엇이든)과 JMeter에서 전송된 요청을 캡처하여 차이를 식별하고 그에 따라 JMeter를 구성하는 것입니다.
  4. 마지막으로 개발자 스냅샷을 사용하고 있는 것처럼 보이므로 이름 없이 JSON payload를 첫 번째 인수로 전달하는 방법은 작동하지 않을 수 있습니다.대신 "Body Data"로 전환해 보십시오.
  5. 의 순서로 View Results Tree Listener(3개 탭 모두)와 Postman의 스크린샷을 사용하여 질문을 갱신할 수 없는 경우

자세한 내용은 JMeter를 사용한SOAP/REST Web 서비스 테스트를 참조하십시오.

Dmitri T의 이 솔루션은 저에게 정말 효과가 있었습니다.

HTTP 헤더 매니저가 "application/json" 값과 함께 "Content-Type" 헤더를 전송하도록 구성되어 있는지 확인합니다.

같은 문제에 직면한 적이 있으며, http 요청에서 Content Encoding 값을 utf-8로 설정하여 해결되었습니다.한번 해보세요.

먼저 payload를 "Parameters"가 아닌 "Body Data"에 넣는 것이 좋습니다.

그런 다음 구성 요소 "HTTP Header Manager"를 추가하고 "content-type" 매개 변수와 대응하는 값 "application/json"을 추가합니다.

이제 때려요.그래야지!

나는 내 문제를 알아냈다.Content-Type이 아닌 Content_type을 설정했기 때문에 2개의 Content-Type 헤더를 만들고 있었습니다.

Hashiya는 설명은 잘하지만 http 요청을 찾는 방법을 놓쳤습니다.[ http default ]를 선택한 경우 [method]옵션은 표시되지 않습니다.

여기에 이미지 설명 입력

HTTP/1.1 415 지원되지 않는 미디어 유형을 지정했습니다.

HTTP Header Manager의 이전 공간을 삭제한 후 200을 획득하여 마법처럼여기에 이미지 설명 입력 작동하였습니다.

모수가 아닌 본문 데이터를 사용해야 합니다.요청 시 다음 탭으로 잘라 붙여넣습니다.또한 구현을 Java로 변경하고 토큰이 유효한지 확인해야 합니다.마지막으로 결과 트리 보고서 보기 항목에서 결과를 확인합니다.당신에게 도움이 되겠군요.

위의 많은 내용 외에도 웹사이트에서 Accept, Content-Type 복사/붙여넣기에는 후행 공간이 없어야 합니다.그걸 알아내는 데 많은 시간이 걸려요.경고 하나 하죠.

편집하여 오류가 발생할 경우 반환 코드는 415: Unsupported Media Type이라고 추가합니다.

.body datasyslog.syslog.syslog.

고객님의 고객명HTTP Header Manager 설정하다headers stores 삭제:

: "filename" : "filename" :Content-Type

" : "value" : "value" :application/json

네, Content-Type 헤더를 전달해야 합니다.저도 같은 문제에 직면했고, 이 링크를 발견하기까지 거의 하루가 걸렸습니다 - https://www.blazemeter.com/blog/performance-test-web-services

머리글:

: 름: :Content-Type ::application/json;charset=utf-8

위의 솔루션 중 어느 것도 효과가 없는 경우(저와 마찬가지로) HTTP Header Manager를 다시 한 번 살펴보시기 바랍니다.헤더 행이 비어 있어 삭제하면 문제가 해결됩니다.

저도 같은 문제에 직면해 있었습니다만, 의뢰 본문의 사이즈가 커서, content-type을 application/json으로 갱신하고, utf-8로서 content encoding을 실시해 버렸습니다만, 정상적으로 동작했습니다.여기에 이미지 설명 입력

첨부한 사진 "You have pasted the request in query parameters" (쿼리 파라미터에 요청을 붙여넣었습니다)와 같이 payload는 신체 부위에 있어야 합니다.

queryParam 섹션에서 페이로드가 있는 스크린샷을 확인합니다.

HTTP 헤더 매니저를 설정하면 문제가 해결됩니다.

HTTP 헤더 매니저: 이름:콘텐츠 유형 및 값: 응용 프로그램/json이 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/37169153/jmeter-does-not-send-json-data-in-post

반응형