我是jmeter的新手,在我的公司,我们正在使用jmeter进行web服务测试。我的要求是我正在使用csv数据配置文件进行Web服务测试,在这里我想用测试结果更新每行csv文件我正在使用beanshell后处理器,请帮助
例: csv包含:
Test Case,Dates,Numbers,Results
Total test cases are 16 and i want to update as below for each test case
TC_001,9-03-2016,001,PASS
TC_002,9-03-2016,0002,FAIL
等等...
Result = "FAIL";
Response = prev.Get....();
If(Response.Contains("Valid"));
Results="PASS";
f = new FileOutputStream("/tmp/oders.csv", true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print(Results + "," + Result);
f.close();
P.Close();
答案 0 :(得分:2)
这可能不是最好的主意:
我建议您添加"测试用例","日期"和"数字"变量到JMeter的.jtl结果文件而不是使用示例变量属性,如:
TestCase
,Date
和Number
将以下行添加到 user.properties 文件(它位于JMeter安装的/ bin文件夹下)
sample_variables=TestCase,Date,Number
也可以将设置作为命令行参数传递,如:
jmeter -Jsample_variables=TestCase,Date,Number -n -t /path/to/testplan.jmx -l /path/to/results.jtl
参考文献:
答案 1 :(得分:1)
import java.io.File;
import org.apache.jmerer.services.FileServer;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.io.Writer;
File file = new File("csvFilePath");
FileWriter fstream = new FileWriter(file, true);
// true, will append the file if already exist
BufferedWriter out = new BufferedWriter(fstream);
out.write("Save your data which you want to save");
out.write("Save your data which you want to save");
out.close();
fstream.close();
答案 2 :(得分:0)
我想分享使用BeanShell PostProcessor将变量写入文件的经验。
我使用"正则表达式提取器"从服务器捕获了一些响应。并将其保存到少量变量Var1& Var2,当我使用" BeanShell PostProcessor"将这些变量写入文件时,我发现当我们使用单线程运行测试但多线程测试时数据丢失时,它工作正常。
说当我注入100个事务时,我在输出文件中只能看到97条记录。
因此,最好的选择是在user.properties文件中设置sample_variables,以便您可以在.jtl结果文件中获取变量。