2016-08-09 4 views
0

요청 ID가 포함 된 요청에서 응답을받습니다. 문제가 발생하면 오류 코드가 있습니다.Jmeter Beanshell 사후 프로세서의 else 문

오류 코드가 있는지 먼저 확인하는 beanshell 스크립트를 작성하고 싶지 않은 경우 요청 ID를 csv 파일에 넣으십시오. beanshell에 else 문이 있는지 찾을 수 없다.

if (there is an err code){ 
write it to the csv file} 
else {write request id to csv} 

어쩌면 어쩌면 어설 션을 사용할 수 있습니까? 자바

2016/08/09 13:38:38 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.apache.jmeter.threads.JMeterContextService; import java.io.PrintWrite . . . '' : Command not found: regexMethod(java.lang.String, java.lang.String) 
2016/08/09 13:38:38 WARN - jmeter.extractor.BeanShellPostProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.apache.jmeter.threads.JMeterContextService; import java.io.PrintWrite . . . '' : Command not found: regexMethod(java.lang.String, java.lang.String) 

답변

1

문제는 당신은 당신의 데이터에 대한 정규식 표현을 얻을 필요가 ...이 일을 할 것이라 생각합니다.

import org.apache.jmeter.threads.JMeterContextService; 
import java.io.PrintWriter; 
import java.io.File; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

String prevResponse = JMeterContextService.getContext().getPreviousResult(). 
          getResponseDataAsString(); 

public void writeToFile(String toWrite) { 
    String path = "/home/username/Desktop/TSO_test_failure.csv"; 
    File file = new File(path); 
    try { 
      PrintWriter writer = new PrintWriter(file, "UTF-8"); 
     writer.print(toWrite); 
     writer.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public String regexMethod (String regex, String text) { 
    String regResult; 
    try { 
     Pattern pat = Pattern.compile(regex); 
     Matcher mac = pat.matcher(text); 
     mac.find(); 
     regResult = mac.group(1); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return regResult; 
} 

String result = null; 
if (prevResponse.contains("errorCode")) { 
    String errRegex = "findErrorID"; // change this to meet your needs! 
    result = regexMethod(errRegex, prevResponse); 
} else { 
    String reqRegex = "findRequestID"; // change this to meet your needs! 
    result = regexMethod(reqRegex, prevResponse); 
} 
writeToFile(result); 
+0

위대한 사람! 한 가지 더 묻습니다. 어떤 값을 가져야합니까 (errorCode). 이전 단계에서 설정해야합니까? – bzdurox

+0

기본적으로 응답에 오류가있는 텍스트가 포함되어 있는지 확인한 다음 결과에 따라 원하는 것을 수행합니다. –

+0

좋아, 요점을 잡아. 모든 것을 설정했지만 지금은 작동해야하지만 여전히 오류가 발생합니다. 내 첫 번째 게시물보세요. – bzdurox