У меня есть кусок регулярного выражения, который я тестировал в JMeter с помощью тестера регулярных выражений, и он возвращает несколько результатов (10), чего я и ожидал.
Я использую средство извлечения регулярных выражений для получения значений, и я хотел бы записать их ВСЕ в файл CSV. Я использую почтовый процессор Beanshell, но мне известен только способ записи 1 значения в файл.
Мой сценарий на Beanshell:
temp = vars.get("VALUES"); // VALUES is the Reference Name in regex extractor
FileWriter fstream = new FileWriter("c:\\downloads\\results.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(temp);
out.close();
Как я могу записать все значения, найденные с помощью регулярного выражения, в файл? Спасибо.
2 ответа
Если вы посмотрите на вывод Debug Sampler, то увидите, что VALUES
будет префиксом.
Подобно
- ЦЕННОСТИ = ...
- VALUES_g = ...
- VALUES_g0 = ...
- ЗНАЧЕНИЯ_g1 = ...
И т.п.
Вы можете использовать ForEach Controller для итерации по ним.
Если вы хотите продолжить работу с Beanshell, вам потребуется перебирать все переменные, например:
import java.io.FileOutputStream;
import java.util.Map;
import java.util.Set;
FileOutputStream out = new FileOutputStream("c:\\downloads\\results.txt", true);
String newline = System.getProperty("line.separator");
Set variables = vars.entrySet();
for (Map.Entry entry : variables) {
if (entry.getKey().startsWith("VALUES")) {
out.write(entry.getValue().toString().getBytes("UTF-8"));
out.write(newline.getBytes("UTF-8"));
out.flush();
}
}
out.close();
Чтобы записать содержимое вашего массива значений в файл, должен работать следующий код (непроверенный):
String[] values = vars.get("VALUES");
FileWriter fstream = new FileWriter("c:\\downloads\\results.txt", true);
BufferedWriter out = new BufferedWriter(fstream);
for(int i = 0; i < values.length; i++)
{
out.write(values[i]);
out.newLine();
out.flush();
}
out.close();
String[] values = vars.get("VALUES"); FileWriter fstream = new FileWriter("c:\\ . . . '' : Typed variable declaration 2014/03/13 12:30:45 WARN - jmeter.extractor.BeanShellPostProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of:
String[] values = vars.get("VALUES"); FileWriter fstream = new FileWriter("c:\\ . . . . '' : Объявление типизированной переменной
String[]
мой код запишет его в файл.
Похожие вопросы
Связанные вопросы
Новые вопросы
jmeter
Apache JMeter - это Java-приложение с открытым исходным кодом, предназначенное для нагрузочного тестирования функционального поведения и измерения производительности. Первоначально разработанный для тестирования веб-приложений, он с тех пор расширился и на другие функции тестирования.
temp
?