Я пытаюсь создать скрипт BeanShell в JMeter для создания XML-сообщения и сохранить его как переменную (а затем, если вы хотите, чтобы пробник SOAP отправил сообщение, но это не так действительно точка). Внутри скрипта у меня есть цикл, который произвольно создает несколько строк, и дело в том, что каждый цикл скрипт считывает новую строку из файла CSV. Цикл работает нормально, но по какой-то причине CSVread next
, похоже, не работает, поэтому каждый раз, когда он просто использует одну и ту же строку из файла CSV.Следующая строка из файла csv в скрипте beanshell Jmeter
Вот код, я использую:
try{
//Use a random variable to loop for a random amount of times
randomnr = vars.get("randomvariable");
int randomint = Integer.parseInt(randomnr);
int FiNr = 123456789;
//I'm using a stringbuilder to create the xml message
StringBuilder multi = new StringBuilder();
for (int i=1; i<randomint; i++){
multi.append("SomeXML");
FiNr = ${__CSVRead(data.csv,0)}; //get a line from the csv
multi.append(""+FiNr);
multi.append("SomeMoreXML");
${__CSVRead(data.csv,next)}; //Go to the next line in the csv - doesn't seem to be working
}
vars.put("xmlmessage",multi.toString()); //put all of it in a variable
}
catch(Exception ex){
log.warn("Something bad happened", ex);
throw ex;
}
Все работает за исключением того, что он не продвигается к следующей строке внутри цикла. Есть предположения?
Я не знаком с этой функцией, поэтому я бы предпочел не оставлять это в качестве ответа, но я бы предположил, что вы хотите 'int FiNr = $ {__ CSVRead (data.csv, 0)};' вне ваш цикл for и '$ {__ CSVRead (data.csv, next)};' должен быть 'FiNr = $ {__ CSVRead (data.csv, next)};'. – RowlandB
@RowlandB Спасибо, что указали, что это была ошибка программирования новобранец. К сожалению, это не решило проблему с файлом csv. Я обновил код. Кроме того, 'FiNr = $ {__ CSVRead (data.csv, next)};' не работает, потому что вам нужно указать столбец для функции, чтобы вернуть значение. –
Возможный дубликат [Разбор CSV-файла для нескольких строк строк с использованием нового API-интерфейсов Java 8 Streams] (http://stackoverflow.com/questions/37865492/parsing-a-csv-file-for-a-multiple-row- строк, использующих новый Java-8-потоки-API) –