#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();
}