【问题标题】:Variable field in "Save Responses to a file" in jMeter -jMeter中“将响应保存到文件”中的变量字段 -
【发布时间】:2023-04-04 06:47:01
【问题描述】:

我一直在用 jMeter 打败自己来学习一些新东西。我正在使用 2.13。我昨天玩的一件事是“将响应保存到文件”侦听器。我已将要创建的文件名的路径放在“文件名前缀”字段中,它似乎运行良好。

使用“变量名”字段比较麻烦。

Apache 文档说该字段是:

保存生成文件名的变量名(这样它就可以 稍后在测试计划中使用)

太棒了!我为变量命名并尝试访问 BeanShell PostProcessor 脚本中的值。

String startCode = vars.get("START_CODE");
String filename = vars.get("FILENAME");
String transNum = vars.get("TRANSACTION_NUM");
System.out.println("startCode=" + startCode + ", transNum=" + transNum + ", filename=" + filename);

我总是得到空值。昨天我已经在这个问题上做了很多事情。我尝试在“用户定义的变量”中预先声明变量。这至少会给我一个空字符串或我在 UDF 的 Value 列中输入的任何值。

不得不说我在 BeanShell 上也是绿色的,除了我对其他变量的访问获取正确的值,所以这有点令人困惑。

【问题讨论】:

  • 我无法让System.out.println 工作。你试过log.info吗?它会出现在右上角打开的日志中。
  • 不,System.out.println() 对我有用(输出到启动 jmeter.bat 的控制台窗口)。无论如何,我尝试了您的建议,并且 log.info() 给了我相同的结果 - null。
  • 如果你知道事情的执行顺序,事情就会变得容易。像预处理器,后处理器,监听器等。搜索这些东西肯定会有所帮助。

标签: jmeter


【解决方案1】:

那么问题是什么?我怀疑您不能将变量名与Save responses to a file 侦听器一起使用,它已经很久没有改变并且过去工作得很好。如果您需要有关使用侦听器的任何额外文档,可以查看Performance testing: Upload and Download Scenarios with Apache JMeter 文章。

如果您在访问 PostProcessor 的 Listener 中生成的 FILENAME 变量值时遇到问题 - 这是预期的,因为 Listeners 发生在 AFTER PostProcessors,因为某些 PostProcessor(尤其是 Beanshell 和类似的)可以修改结果.所以为了能够从 Beanshell 访问 FILENAME 变量:

  1. 使用Beanshell Listener 代替 Beanshell PostProcessor
  2. 确保 Beanshell 侦听器低于将响应保存到文件侦听器,否则您会遇到同样的情况

【讨论】:

  • 好的,使用 Beanshell 侦听器而不是 Beanshell 后处理器允许我从“将响应保存到文件”中检索 FILENAME 变量
  • 这不是看在上帝的份上!我得到的价值总是空的。为什么这太难了??
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多