Невозможно записать surevyId в CSV-файл, используя постпроцессор Beanshell в Jmeter. Нулевой пишется вместо surveyId - PullRequest
0 голосов
/ 17 апреля 2020
{
"code": 200,
"surveyId": 3239640,
"success": 1
}

Я хочу записать surveyId в CSV-файл, но вместо surveyId пишется ноль. Я написал скрипт бобовой оболочки следующим образом:

vars.put ("Response Data",ctx.getPreviousResult().getResponseDataAsString());

log.info(vars.get("Response Data"));

try{

String surveyId = vars.get("surveyId");

}

catch(Exception ex) { log.warn("Error in my script", ex); throw ex; } log.info("surveyId is " +surveyId); f = new FileOutputStream("C://Users//garim//Downloads//apache-jmeter-5.1.1//apache-jmeter-5.1.1//bin//SurveyId.csv", true); p = new PrintStream(f); this.interpreter.setOut(p); print(surveyId); f.close();

1 Ответ

0 голосов
/ 20 апреля 2020
  1. Ваша переменная surveyId не определена где-либо в вашем скрипте, поэтому она равна нулю, вам нужно получить ее, используя JSON Extractor , а экстрактор JSON должен быть до PostProcessor Beanshell

  2. В целом начиная с JMeter 3.1 вы должны использовать элементы тестирования JSR223 и Groovy язык для сценариев и предоставить Groovy имеет встроенную поддержку JSON Вы можете изменить свой код так:

    String surveyId = (new groovy.json.JsonSlurper().parse(prev.getResponseDataAsString()).surveyId) as String
    new File("C://Users//garim//Downloads//apache-jmeter-5.1.1//apache-jmeter-5.1.1//bin//SurveyId.csv") << surveyId << System.getProperty("line.separator")
    

Дополнительная информация: Apache Groovy - Почему и как вы должны его использовать

...