2010-01-21 14 views
1

우리는 JMeter의 HTTP 프록시로 기록하고자하는 애플릿 - 서블릿 통신을 보유하고 있습니다. 이 애플릿이 일부 직렬화 된 자바 객체 (내장 타입), 우리는이 애플릿의 오류 얻을 포함하는 HTTP POST 메시지를 보낼 때까지 GET 메시지와 함께 작동 :HTTP/POST의 JMeter 프록시 및 java 직렬화?

alt text http://img339.imageshack.us/img339/9238/appletservletjmeterhttp.png

확인을, 그래서 몇 가지있다 큐의 어딘가에있는 JVM 버전 충돌. 그러나 어디에서?

Jmeter없이 통신이 정상적으로 실행됩니다 (애플릿 -> Tomcat -> Servlet). 내 로컬 컴퓨터에서 모두.

그러나 Jmeter : Applet -> JMeter proxy -> Tomcat -> Servlet에서는 작동하지 않습니다. 내 컴퓨터에도 다 있습니다.

는 JMeter가이 POST 메시지 내용을 수정 한 것처럼은 ...

나는 잘 작동뿐만 아니라 아파치 프록시를 테스트했다.

Java 설치 버전이 하나 뿐이고 JDK가 하나이고 JRE가 하나뿐입니다.

00000348 ac ed 00 05 73 72 00 11 6a 61 76 61 2e 6c 61 6e ....sr.. java.lan 
00000358 67 2e 49 6e 74 65 67 65 72 12 e2 a0 a4 f7 81 87 g.Intege r....... 
00000368 38 02 00 01 49 00 05 76 61 6c 75 65 78 72 00 10 8...I..v aluexr.. 
00000378 6a 61 76 61 2e 6c 61 6e 67 2e 4e 75 6d 62 65 72 java.lan g.Number 
00000388 86 ac 95 1d 0b 94 e0 8b 02 00 00 78 70 00 00 01 ........ ...xp... 
00000398 7b            { 
: 나는 토끼 구멍 ;-) 여기

에 깊이 파고 시작하기 전에 물어 것 두 1.6.0_07 ...

생각 톰캣에 직접 전송되는 POST 데이터의 진수 덤프입니다

00000128 ac ed 00 05 73 72 00 11 6a 61 76 61 2e 6c 61 6e ....sr.. java.lan 
00000138 67 2e 49 6e 74 65 67 65 72 12 e2 a0 a4 f7 3f 3f g.Intege r.....?? 
00000148 38 02 00 01 49 00 05 76 61 6c 75 65 78 72 00 10 8...I..v aluexr.. 
00000158 6a 61 76 61 2e 6c 61 6e 67 2e 4e 75 6d 62 65 72 java.lan g.Number 
00000168 3f ac 3f 1d 0b 3f e0 3f 02 00 00 78 70 00 00 01 ?.?..?.? ...xp... 
00000178 7b            { 

두 번째 덤프에서 "3 층"의 많은 ... 그래서이 확실히 인코딩 문제의 어떤 종류 :

그리고 여기가 JMeter를 통해 전송되는 데이터이다. 컨텐츠 유형 헤더에 올바르게 설정 : 다른

POST /ABCOrder/ABCServlet?cmd=getNetworkConnection HTTP/1.1 
Connection: keep-alive 
Content-Type: application/octet-stream 
Host: 109.107.148.164:8443 
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
User-Agent: Mozilla/4.0 (Windows Vista 6.0) Java/1.6.0_14 
Content-Length: 81 

답변

4

에 깊이 파고 할 수있는 권한을 수상처럼 보이는 솔루션입니다 : 하여 JMeter는 설정 파일, 빈/jmeter.properties 있습니다. 여기에 당신이 이진 콘텐츠 형식을 설정할 수있는 옵션을 찾을 수 있습니다

이제
# Binary content-type handling 
# These content-types will be handled by saving the request in a file: 
proxy.binary.types=application/x-amf,application/x-java-serialized-object 

응용 프로그램/octet-stream을가 기본적으로 포함되지 않는 이유는 모르겠지만, 당신은 간단하게 추가 할 수 있습니다 목록에, 당신은 끝났어.

proxy.binary.types=application/x-amf,application/x-java-serialized-object,application/octet-stream 

이 내가 그것을 발견하는 방법입니다 https://issues.apache.org/bugzilla/show_bug.cgi?id=44808

이 버그를 폐쇄 JMeter를 에서 검색 ... :-)

0

누군가가 매우 유사한를보고 : http://markmail.org/message/pl5erin2isehm5q6. 그래도 bug tracker에서이 문제와 관련된 문제를 찾을 수 없습니다. 그것은 당신이 토끼 구멍 : 여기

+0

링크를 제공해 주셔서 감사합니다.하지만 2 년 전이었습니다! 나는 이것이 어떤면에서 해결 될 수 있기를 정말로 희망한다. Jmeter 메일 링리스트 아카이브도 확인합니다. – egbokul

+0

나는 네가 옳다는 것을 너에게 희망한다. 행운을 빕니다. –

0

허용 된 대답은 정적 요청을 기록 할 수 있습니다나요. 요청의 변형을 허용하지 않으므로 현실적이지 않습니다 (예 : 검색 단어 변경 ...).) 당신은 항상 동일한 데이터 묶음을 스트레스 테스트 할 것입니다.

실제 테스트를하려면 타사 플러그인을 사용해야합니다.

상업 JMeter를 플러그인이 있습니다, 참조 :

이 테스트는 현실적인하려면, 당신은 직렬화 된 객체 콘텐츠를 변동 비화해야합니다.

수 있도록이 자바 직렬화 플러그인 다음

  • JMeter를 프록시 서버, 사용자 정의 샘플러는

    생성됩니다 사용하여 테스트 계획과 교통의

    쉽게 녹음

  • 요청
  • 쉬운 variabilization (하는 것 예를 들어, $ {searchedWord}와 같은 쉬운 구문을 통해 XML로 나타납니다. 여기서 searchedWord는 CSV 또는 사용자 정의 변수에서 가져올 수 있습니다. 표준 JMeter를보기를 통해 요청/응답의 JMeter를 표준 포스트 프로세서

  • 쉬운 디버깅을 사용하여 응답 데이터의

  • 쉬운 추출 트리 요소를

면책 조항 결과 :이 회사에서 일.