jMeter 中“保存对文件的响应”中的变量字段 -

Kel*_*ard 3 jmeter

我一直在用 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);
Run Code Online (Sandbox Code Playgroud)

我总是得到空值。昨天我已经在这方面进行了很多次黑客攻击。我试过在“用户定义的变量”中预先声明变量。这至少会给我一个空字符串或我放在 UDF 的值列中的任何值。

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

Dmi*_*i T 5

那么问题是什么?我怀疑您不能将变量名与将响应保存到文件侦听器中一起使用,它已经很久没有改变并且过去工作得很好。如果您需要有关使用侦听器的任何额外文档,您可以查看性能测试:使用 Apache JMeter 上传和下载场景文章。

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

  1. 使用Beanshell Listener而不是 Beanshell PostProcessor
  2. 确保 Beanshell Listener低于Save Responses to a file listener,否则你会遇到同样的情况