2017-01-25 1 views
0

RESTful API로 서비스를 테스트하면이 메소드는 이진 데이터로 POST 요청을 수신합니다. JMeter를 테스트에 사용합니다. 하지만이 도구로 이러한 요청을하는 데 문제가 있습니다.JMETER를 사용하여 RESTful API에 2 진 본문으로 POST 요청하기

나는 이진 데이터를 확인하고 바디 데이터에 나는 그것이 변수에서 원시 바이트를 읽어하고 보내기 위해 ${bytes}를 넣어 HTTP 요청,

import java.util.Base64; 
import org.apache.commons.lang.StringEscapeUtils; 
import org.apache.commons.codec.binary.Base64; 

String base64Str="Some string"; 
//Encode the string 
byte[] bytes = Base64.encodeBase64(base64Str.getBytes()); 
vars.putObject("bytes", bytes); 

그런 다음 변수에 넣어 BeanShell이다 샘플러를 사용 그것은 POST 요청에서. 그런데 java.lang.ClassCastException : [B는 java.lang.String에 캐스트 할 수 없습니다.]라는 예외가 발생합니다. 즉, 본문 데이터에서 주어진 변수 bytes이 string으로 형 변환됩니다. 다소 비슷한 질문이 Sending HTTP requests with binary body using JMeter이지만 의견에서 문자열 주조에 대한 동일한 결론을 내 렸습니다. 요청과 함께 파일을 보내면 될 수 있습니까?

HTTP 원시 요청이 있는데, 구체적인 API 메소드에 요청을 보낼 수있는 방법을 찾을 수 없습니다. 플러그인에 포트 필드 만 있습니다. 포트 뒤의 메소드 경로를 쓸 수 있습니까? 바이트를 전달하는 방법.

답변

1

HTTP 요청을 사용하여 이진 본문 데이터로 POST 요청을 관리했습니다. 그것을하기 위해 "요청과 함께 파일 보내기"에 항목을 추가하고 매개 변수 이름 및 MIME 유형없이 파일 경로 필드 만 채웠습니다. JMeter는 주어진 파일을 읽고이 경우에는 POST 요청의 본문과 같이 바이트를 보냅니다.

대답은 여기 https://qnalist.com/questions/698175/does-jmeter-support-sending-arbitrary-binary-data-in-the-body-of-a-post 을 발견하고 수동 http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request

을 주도했다
관련 문제