我试图将数据写入csv文件,我能够将一些值写入csv文件,但无法写出一个句子中包含20个以上单词的值。
文字:<msg>Congratulations! Your hall eGift Card of 120000 INR has been redeemed successfully on all Merchant Your redemption transaction number is 188</msg>
代码:
import java.io.File;
import org.apache.jmeter.services.FileServer;
pramvalues=vars.get("paramvalues_2");
Result = "FAIL";
Response = prev.getResponseDataAsString();
if(Response.contains("Congratulations! Your hall eGift Card"))
Result = "PASS";
f = new FileOutputStream("E:/ApacheJmeter/TestResults/Results.csv", true);
p = new PrintStream(f);
p.println(vars.get("mes")+","+Result);
p.close();
f.close();
我得到&#34; mes&#34; as&#34; null&#34;但在调试中,采样器数据即将到来。
请提供帮助。
答案 0 :(得分:0)
使用Beanshell将行写入文件并不是最好的想法,好像你将与许多线程同时执行此操作,您将遇到竞争条件并且您的结果文件将被损坏。
我会推荐以下内容:
Congratulations! Your hall eGift Card
文字使用Sample Variables属性&#34;告诉&#34; JMeter将mes
变量值存储到.jtl结果文件中。你可以用两种方式做到这一点:
将以下行添加到 user.properties 文件(位于JMeter&#39; s&#34; bin&#34;文件夹中)
sample_variables=mes
或通过-J command-line argument like
传递jmeter -Jsample_variables=mes -n -t test.jmx -l resutl.jtl
请参阅Apache JMeter Properties Customization Guide以了解有关JMeter属性以及设置和覆盖它们的方法的更多信息
假设一切顺利,您应该在.jtl结果文件中看到一个名为mes
的额外列,它将包含${mes}
变量值。
如果您仍想使用脚本切换到JSR223 Elements和Groovy language,也可以使用Critical Section Controller来避免竞争条件。