groovy - 使用 PostProcessor 将响应保存到 JMeter 中的文件
问题描述
我尝试使用以下代码在每次迭代中JSR223 PostProcessor
保存对文件的响应。CSV
if(${__groovy(ctx.getPreviousResult().getResponseCode(),)} == "200"){
vars.put("response", prev.getResponseDataAsString());
String res="${response}";
FileWriter fstream = new FileWriter("logresult.csv",true);
fstream.write(res+"\n");
fstream.close();
}
我假设应该在与 jmx 相同的文件夹中创建 csv 文件,但执行后它不存在。我在一个线程中执行测试。
解决方案
不要${}
在 JSR223 脚本中使用语法作为 JMeter最佳实践的一部分
if(prev.getResponseCode() == "200"){
String res=prev.getResponseDataAsString();
vars.put("response", res);
FileWriter fstream = new FileWriter("logresult.csv",true);
fstream.write(res+"\n");
fstream.close();
}
确保脚本不使用任何变量,
${varName}
因为缓存仅采用${varName}
. 而是使用:vars.get("varName")
推荐阅读
- python - Python正则表达式,忽略字符,直到某些字符匹配多次
- c - Xv6 中的 Omode 是什么?
- ansible - Ansible:如何获得更多细节的输出
- bash - Bash - 通配符执行的延迟评估:它是如何工作的
- bootstrap-4 - Bootstrap 4.1 JS 组件 - 不工作
- php - 在方法中使用返回 $this
- azure - 我正在更改 Cosmos DB 的索引,但它没有按预期工作
- javascript - 当javascript添加属性连续时CSS转换不起作用
- scala - 加特林:随机馈线 POST 请求:未找到:价值电子邮件(加特林 3.0.0)
- c# - 删除文件 - 跳过正在使用的文件