2013-05-02 41 views
3

我在使用包含正则表达式捕获的变量作为'保存对文件的响应'侦听器中文件名的一部分时遇到了一些困难。我能够在if控制器中成功使用捕获的变量。但是,当我在“保存对文件的响应”侦听器的文件前缀部分中使用它时,它并不开心。在Jmeter中如何使用捕获的正则表达式变量作为​​文件名的一部分?

这是

"command":"ARCHIVE_FILE" 

我执行正则表达式的JSON这是正则表达式

Reference Name:  command 
Regular Expression: "command":"(.+?)" 
Template:   $1$ 
Match No.   1 
Default Value:  COMMAND_NOT_FOUND 

我可以成功地使用所捕获的变量以“如果控制器”。虽然我必须承认,但我对所需的双引号有点困惑。所以,就像我说的(我曾经尝试没有任何双引号,但如果条件不触发)

If Controller 
Condition:  "${command}"=="ARCHIVE_FILE" 

,我已经验证了上述作品。但是,当我尝试使用捕获的变量作为“保存对文件的响应”中文件名前缀的一部分时,它将文件字面上保存为'$ {command}'。不是存储在变量中的值。

Filename prefix: d:\tmp\${command} 

怀疑我的问题与这个引用有关,然后我尝试了这个作为一个实验。

Filename prefix: d:\tmp\"${command}" 

这确实给了我在变量中捕获的值,但它是用双引号结尾的,jmeter对此并不满意。

jmeter.reporters.ResultSaver:错误的客户端下载 开始java.io.FileNotFoundException创建示例文件: d:\ Apache的JMeter的-2.9 \ tmp目录\客户端\ “ARCHIVE_FILE”(文件名, 目录名称或卷标语法不正确)

此处有任何帮助。

回答

1

您可以:

双回斜线在文件名前缀字段:

d:\\tmp\\${command} 

,因为在这种情况下,一个反斜杠会被视为“逃离”字符和变量没有扩大到它的价值;

或:

2.在脚本别处定义d:\tmp\部分作为单独的变量例如${responsePath}和与此变量替换的文件名前缀场d:\tmp\

${responsePath}${command} 

两种变体将正常工作,但第2人似乎更普遍一点。

+0

谢谢。工作很好。 – agranum 2013-05-03 13:57:20

相关问题