В одном из моих тестов используется Loop Controller, CSV Data Set Config и контроллер If для итерации через список csv для выполнения одного запроса с несколькими параметрами, определенными в csv файл.Как сохранить список xml из ответа на файл csv в JMeter
Я хочу изменить этот тест, чтобы использовать список параметров, которые я получаю из ответа GET в формате XML. , например, используя этот список xml: http://www.w3schools.com/xml/cd_catalog.xml теперь я хочу проходить через все < TITLE> значения.
Я попытался сохранить ответ с помощью «Сохранить ответы в файл», а затем использовать BeanShell Listener, чтобы прочитать файл и преобразовать его в список csv, который содержит только значения < TITLE>. но я не уверен, как к этой части преобразования в BeanShell Listener.
import org.apache.jmeter.services.FileServer;
import org.apache.commons.io.FileUtils;
File xmlFile = new File(FileServer.getFileServer().getBaseDir()+"/resources/data/csv/response1.xml", "UTF-8");
String fileData = FileUtils.readFileToString(xmlFile);
fileData = fileData.replaceAll("<?xml version="1.0" encoding="UTF-8"?>", "");
fileData = fileData.replaceAll("<CATALOG>", "");
//...
FileUtils.writeStringToFile(xmlFile, fileData);
/*
f = new FileOutputStream(FileServer.getFileServer().getBaseDir()+"/resources/data/csv/parameterlist.csv", true);
p = new PrintStream(f);
p.println(fileData);
p.close();
f.close();
*/
должно быть какое-то решение с использованием регулярных выражений, XPath или преобразование XSL на всех> элементов < TITLE или есть более простой способ, что я не думал?
Я думаю, что я сделал это намного сложнее, чем должно быть. теперь я просто использую XPath Extractor. Я думал, что JMeter сохранит только первый матч, но сохранит все совпадения как VAR_1, VAR_2 и т. д. VAR_matchNr дает мне количество всех совпадений. – Pascal