我正在通过JDBC请求运行查询,并且能够获取数据并将其放置在变量数组中。问题是我希望将变量的值保存到文本文件中。但是,每个变量都有一个附加的唯一编号,即SCORED_1,SCORED_2,SCORED_3等。我正在使用beanshell后处理器来写入文本文件。问题是我,除非我定义一个行号。我如何从SQL查询中获取所有结果并将其转储到单个变量中,而变量用方括号和行分隔在它们自己的行上。
import org.apache.jmeter.services.FileServer;
// get variables from regular expression extractor
ClaimId = vars.get("SCORED _9"); // I want to just use the
SCORED variable to contain all values from the array
without "{[" characters.
// pass true if want to append to existing file
// if want to overwrite, then don't pass the second
argument
FileWriter fstream = new FileWriter("C:/JMeter/apache-
jmeter-4.0/bin/FBCS_Verify_Final/Comp.txt", true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(ClaimId);
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();
答案 0 :(得分:0)
在没有看到查询输出和结果文件格式的情况下,我们还没有足够的心灵感应来提出解决方案。
但是,我给你的印象是你走错了方向。考虑到您在谈论{[
个字符,看来您正在使用Result Variable Name
字段
返回一个ArrayList,应该区别对待
但是,如果您切换到Variable Names
字段
JMeter将为每个结果集行生成一个单独的变量,使用它并最终将其连接起来应该容易得多
更多信息:
答案 1 :(得分:0)
JDBC请求>输入变量名称>存储为字符串>添加Beanshell PostProcessor并添加以下脚本。
import org.apache.jmeter.services.FileServer;
{
FileWriter fstream = new FileWriter("C:/JMeter/apache-jmeter-4.0/bin/FBCS_Verify_Final/Comp.txt", false);
BufferedWriter out = new BufferedWriter(fstream);
Count = vars.get("SCORED_#");
Counter=Integer.parseInt(vars.get("SCORED_#"));
for (int i=1;i<=Counter;i++)
{
ClaimId = vars.get("SCORED_"+i);
out.write(ClaimId);
out.write(System.getProperty("line.separator"));
}
out.flush();
out.close();
fstream.close();
}