JMeter从XML Stream修改输出到文件

时间:2010-12-09 16:53:55

标签: javascript xml string jmeter

我正在尝试编写一个JMeter脚本,它在接收到服务器的XML响应后,动态地从中提取一个字符串(删除响应的第一部分)并将其写入文件。

目前我使用Save Response Data写入ChannelData_UAT_1(文件名)。一切都很好,它写得很开心。

然后我添加BSF PreProcessor BEFORE ,然后使用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 个答案:

答案 0 :(得分:4)

我认为问题源于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/