2013-05-21 2 views
1

JMeter를 사용하여 Eclipse-RAP 애플리케이션을 테스트하고 있습니다.
RAP에서 클라이언트 (브라우저의 javascript 프레임 워크)는 json 기반 프로토콜을 통해 서버와 통신합니다.요청 전에 httpsampler의 게시 본문을 조작하십시오.

메시지는 다음과 같습니다

{"head":{"requestCounter":3,"uiSessionId":"832834"},"operations":[["set","w1",{"bounds": [0,0,1680,893],"cursorLocation":[1262,-1]}]]} 

당신이 uiSessionId. I extracted this id using a "Regular Expression Extractor" and stored it in a variable named UI_SESSION_ID`에 저장된 세션 ID가보다시피.
그럼 난 기록 된 HTTP - 요청의 원시 "포스트 바디"편집 :

{"head":{"requestCounter":3,"uiSessionId":"${UI_SESSION_ID}"},"operations":[["set","w1",{"bounds": [0,0,1680,893],"cursorLocation":[1262,-1]}]]} 

을하고 그것을 작동합니다.

하지만 각 HTTP-Request의 Post-Body를 많이 변경해야합니다. 내가 옳은 일을 할 것 "BeanShell이다 처리기"를 사용하여 생각 몇 가지 조사 후 :하지만,

var sampler = ctx.getCurrentSampler(); 

나에게 줄 것 HTTPSampler와 나는 날 이후 몸을 검색 할 수있는 방법을 찾지 못했습니다 대체 session-id를 변수와 함께 설정하고 변경된 포스트 본문을 설정합니다.
의 JavaDoc : http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSampler.html

당신은 내가 수동으로 모든 요청을 변경하지 않고 변수를 사용하여 uiSessionId을 대체 할 수있는 방법을 알고 계십니까?

답변

0

꼭 필요하지는 않습니다. uiSessionId 헤더는 RAP에서 여러 브라우저 탭 지원을 위해 마일스톤 버전으로 도입되었지만이 헤더 매개 변수를 더 이상 사용하지 않는 다른 메커니즘으로 대체되었습니다.

RAP 2.1 RC1에서 클라이언트는 이제 URL 매개 변수 cid의 모든 POST 요청에 "연결 ID"를 첨부합니다. 이 매개 변수는로드 테스트에 영향을주지 않으므로 레코딩에서 제거하지 않아도됩니다. 모든 jmeter 스레드는 자체 HttpSession을 가져 오므로 모든 스레드가 동일한 cid를 갖는 것은 문제가 아닙니다.

이 변경의 이유 중 하나는 어려움을 겪고있는 종류의 문제없이 테스트 RAP 응용 프로그램을로드하는 것이 었습니다.

관련 문제