Массив переменных JMeter в текстовый файл

#jdbc #jmeter #beanshell

#jdbc #jmeter #beanshell

Вопрос:

введите описание изображения здесьЯ запускаю запрос через JDBC request, и я могу получить данные и поместить их в массив переменных. Проблема в том, что я хочу, чтобы значения переменных были сохранены в текстовый файл. Однако каждой переменной присваивается уникальный номер, добавляемый к ней, т.е. SCORED_1, SCORED_2, SCORED_3 и т.д. Я использую постпроцессор beanshell для записи в текстовый файл. Проблема в том, что я не определяю номер СТРОКИ. Как я могу получить все результаты SQL-запроса и поместить их в одну переменную без переменных, разделенных скобками, и строк, разделенных в их собственной строке.

  import org.apache.jmeter.services.FileServer;

 // get variables from regular expression extractor 
 ClaimId = vars.get("SCORED _9"); // I want to just use the 
 SCORED variable to contain all values from the array 
 without "{[" characters.


  // pass true if want to append to existing file  
 // if want to overwrite, then don't pass the second 
 argument
 FileWriter fstream = new FileWriter("C:/JMeter/apache- 
 jmeter-4.0/bin/FBCS_Verify_Final/Comp.txt", true);
 BufferedWriter out = new BufferedWriter(fstream);
 out.write(ClaimId);
 out.write(System.getProperty("line.separator"));
 out.close();
 fstream.close();
  

Ответ №1:

Мы недостаточно телепатичны, чтобы предложить решение, не видя выходных данных вашего запроса и формата файла результата.

Однако у меня создается впечатление, что вы движетесь в неправильном направлении. Учитывая, что вы говорите о {[ символах, кажется, что вы используете Result Variable Name поле

введите описание изображения здесь

который возвращает ArrayList, который следует обрабатывать по-другому

введите описание изображения здесь


Однако, если вы переключитесь на Variable Names поле

введите описание изображения здесь

JMeter сгенерирует отдельную переменную для каждой строки результирующего набора, и с ней должно быть намного проще работать и в конечном итоге объединять

введите описание изображения здесь

Дополнительная информация:

Комментарии:

1. Спасибо Дмитрию. Я попробовал оба метода — результирующую переменную и имена переменных. Имя переменной выдает мне результат, который я ищу, но в виде массива, а не как отдельный результат, подобный переменной Result. Я пытаюсь записать каждое значение массива в текстовый файл. Я использую цикл for в постпроцессоре Beanshell, но сталкиваюсь с ошибкой оценки.

Ответ №2:

Запрос JDBC> Введите имя переменной> Сохранить в виде строки> Добавьте постпроцессор Beanshell и добавьте следующий скрипт.

     import org.apache.jmeter.services.FileServer;
{
FileWriter fstream = new FileWriter("C:/JMeter/apache-jmeter-4.0/bin/FBCS_Verify_Final/Comp.txt", false);
BufferedWriter out = new BufferedWriter(fstream);



 Count = vars.get("SCORED_#");
 Counter=Integer.parseInt(vars.get("SCORED_#"));
 for (int i=1;i<=Counter;i  )

 {

 ClaimId = vars.get("SCORED_" i);
 out.write(ClaimId);
 out.write(System.getProperty("line.separator"));

 }

 out.flush();
 out.close();
 fstream.close();

}