2010-12-09 3 views
2

서버에서 XML 응답을받은 후 즉시 응답에서 문자열을 추출하고 (응답의 첫 번째 부분 삭제) JMeter 스크립트를 작성하려고합니다. 파일로.XML 스트림에서 파일로 출력을 수정하는 JMeter

현재 Save Response Data을 사용하여 ChannelData_UAT_1 (파일 이름)에 글을 남깁니다. 좋아. 행복하게 쓴다.

그런 다음 BSF PreProcessorBEFORE을 추가하고 자바 스크립트를 사용하여 문자열을 추출합니다. XML 태그가 많아서 "<Markets>"부터 모든 것을 원합니다.

내가 사용

function extract_markets(str) 
{ 
    marketIndex = str.indexOf("<Markets"); 
    __log(marketIndex); 
    length = str.length; 
    marketString = str.substring(markeIndex, length-1); 
    return str; 
} 

vars.put('ChannelData_UAT_1', extract_markets(vars.get('ChannelData_UAT_1'))); 

는 지금까지 내가 말할 수있는, ChannelData_UAT_1 데이터가에있는 변수이다 그러나 이것은 단지 Save Response Data에 언급되어있다.. 그러나 나는 그것을 나중에 할 수 없다. 그렇지 않으면 이미 파일에 쓰여있을 것이다.

현재 성능은 응답을 받고 파일에 쓰는 것입니다. 마치 자바 스크립트가 존재하지 않는 것처럼 필터링이 수행되지 않습니다.

제가 놓친 부분이 작거나 분명한 사항은 없습니까? 제안?

답변

4

나는이 문제가 ChannelData_UAT_1이 변수가 아니며 어떻게 Save Response Data이 작동한다는 사실에 기인한다고 생각합니다.

ChannelData_UAT_1은 파일의 내용이 아니라 파일 이름입니다.

"응답"의 내용을 수정해야합니다. 페이지 응답 값을 함수 값으로 바꿀 수 있습니다.

import org.apache.jmeter.util.JMeterUtils; 
import org.apache.jmeter.samplers.SampleResult; 

prev.setResponseData(extract_markets(vars.get('ChannelData_UAT_1'))); 

출처 : http://www.javadocexamples.com/java_examples/org/apache/jmeter/samplers/SampleResult/

나는 코드는 다음과 같이 보일 것 생각