2017-01-26 6 views
0

В одном из моих тестов используется 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 или есть более простой способ, что я не думал?

+0

Я думаю, что я сделал это намного сложнее, чем должно быть. теперь я просто использую XPath Extractor. Я думал, что JMeter сохранит только первый матч, но сохранит все совпадения как VAR_1, VAR_2 и т. д. VAR_matchNr дает мне количество всех совпадений. – Pascal

ответ

0

нашел другой и более простой метод, который работает для моей цели:

  • Получить запрос, чтобы получить список XML.
    • добавить XPath Extractor
    • имени ссылки:
    • XPATH запрос 'заголовки': '// название'
  • ForEach контроллер
    • ввода переменной префикс: 'Название'
    • Наименование выходной переменной: 'title'