2016-08-09 2 views
0

Я получаю ответ от моего запроса, содержащего идентификатор запроса, и если что-то пойдет не так, есть код ошибки.Если инструкция else в Jmeter Beanshell post-processor

Я хочу написать сценарий beanshell, который будет выглядеть во-первых, если есть какой-либо код err, если бы он не вводил идентификатор запроса в файл csv. Я не может найти ничего о том, если другом заявлении в BeanShell

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

возможно в BeanShell или лучше использовать утверждение?

Проблема с Java

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

Смежные вопросы