Как сохранить значения массива, извлеченные с помощью RegExp в Jmeter в файл?
У меня есть скрипт с RegExp извлек массив значений, хранящихся в переменной. Мне нужно хранить значения в файле. Как это можно сделать с помощью постпроцессора оболочки бобов. Я пробовал код, который хранит только одно значение в файле. Пожалуйста, помогите мне в этом.
мой запрос ответа
`<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetCitiesByCountryResponse xmlns="http://www.webserviceX.NET"><GetCitiesByCountryResult><NewDataSet>
<Table>
<Country>British Indian Ocean Territory</Country>
<City>Diego Garcia</City>
</Table>
<Table>
<Country>India</Country>
<City>Ahmadabad</City>
</Table>
<Table>
<Country>India</Country>
<City>Akola</City>
</Table>
<Table>
<Country>India</Country>
<City>Aurangabad Chikalthan Aerodrome</City>
</Table>
<Table>
`
Я хочу хранить названия городов в файле, используя оболочку bean. Как это можно сделать.
1 ответ
Похоже, вы пытаетесь работать с ответом веб-службы Global Weather.
Если вам нужно сохранить все значения <City>
узлы в файл, я бы порекомендовал перейти на JSR223 PostProcessor и язык Groovy как:
- Groovy производительность намного лучше, чем Beanshell
- Groovy имеет встроенную поддержку XML
- Записывать данные в файлы в Groovy легко, как шарм
Пример JSR223 PostProcessor Groovy код, который будет писать каждый <City>
найденный в ответе файл (каждый город в новой строке) будет выглядеть так:
def slurper = new XmlSlurper()
def xml = slurper.parseText(prev.getResponseDataAsString())
def newDataSet = xml.'**'.find { node ->
node.name() == 'GetCitiesByCountryResult'
}
def filteredResult = slurper.parseText(newDataSet.toString())
def cities = filteredResult.'**'.findAll { node ->
node.name() == 'City'
}
cities.each {
new File('someFile.txt') << it << System.getProperty("line.separator")
}