JMeter изменяет вывод в файл из XML Stream - PullRequest
2 голосов
/ 09 декабря 2010

Я пытаюсь написать сценарий JMeter, который после получения и XML-ответа от сервера извлекает из него строку на лету (удаляет первую часть ответа) и записывает ее в файл.

В настоящее время я использую Save Response Data для записи в ChannelData_UAT_1 (имя файла). Все хорошо, пишет радостно.

Затем я добавляю BSF PreProcessor ДО и использую javascript для извлечения строки. Это куча тегов XML, я хочу все, начиная с "<Markets>".

Я использую:

function extract_markets(str)
{
    marketIndex = str.indexOf("<Markets");
    __log(marketIndex);
    length = str.length;
    marketString = str.substring(markeIndex, length-1);
    return str;
}

vars.put('ChannelData_UAT_1', extract_markets(vars.get('ChannelData_UAT_1')));

Насколько я могу судить, ChannelData_UAT_1 - это переменная, в которой находятся данные. Однако это упоминается только в Save Response Data. Но я не могу сделать это потом, иначе он уже записан в файл.

Текущее исполнение - получение ответа и запись в файл. Фильтрация не выполняется - как будто мой javascript не существует.

Что-нибудь маленькое или очевидное, что я пропустил? Предложения?

1 Ответ

4 голосов
/ 09 декабря 2010

Я полагаю, что проблема связана с тем, что ChannelData_UAT_1 не является переменной и как Save Response Data работает.

ChannelData_UAT_1 - это имя файла, а не его содержимое.

Вам необходимо изменить содержимое «Ответа».Вы можете заменить значение ответа страницы значением вашей функции.

Я думаю код будет выглядеть примерно так:

import org.apache.jmeter.util.JMeterUtils; 
import org.apache.jmeter.samplers.SampleResult;

prev.setResponseData(extract_markets(vars.get('ChannelData_UAT_1')));

Источник: http://www.javadocexamples.com/java_examples/org/apache/jmeter/samplers/SampleResult/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...