2016-06-28 18 views
1

我一直在用jMeter学习一些新东西,一直在殴打自己。我正在使用2.13。我昨天玩的一件事就是“保存对文件的回复”监听器。我已经把我想要在“文件名前缀”字段中创建的文件名的路径,它似乎运作良好。jMeter中的“保存对文件的响应”中的可变字段 -

使用“变量名称”字段更麻烦。

enter image description here

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上也是绿色的,除了我的访问其他变量获取正确的值,所以这有点令人困惑。

+0

我在使用'System.out.println'时遇到了问题。你尝试过'log.info'吗?它会出现在右上角打开的日志中。 – RowlandB

+0

不,System.out.println()适用于我(输出进入jmeter.bat从其开始的控制台窗口)。无论如何,我试过你的建议和log.info()给了我相同的结果 - null。 –

回答

2

那么问题是什么?我怀疑你不能在Save responses to a file监听器中使用变量名,它的年龄并没有改变,并且习惯于很好地工作。如果您需要关于使用监听器的任何额外文档,您可以查看Performance testing: Upload and Download Scenarios with Apache JMeter文章。

如果你有问题访问,在PostProcessor中在监听器产生FILENAME变量值 - 这是一种为听众发生后处理器为特定的后处理器(尤其是BeanShell的和类似的)预期可修改的结果。因此,为了能够从BeanShell的访问变量FileName:

  1. 使用Beanshell Listener代替的BeanShell PostProcessor中
  2. 确保BeanShell的监听器低于保存响应文件监听器,否则你会碰到相同的情况
+0

好的,使用Beanshell Listener而不是Beanshell PostProcessor允许我从“将响应保存到文件”中检索FILENAME变量 –