在Jmeter中,如何使用捕获的regex变量作为文件名的一部分?

在Jmeter中,如何使用捕获的regex变量作为文件名的一部分?,regex,jmeter,Regex,Jmeter,在“将响应保存到文件”侦听器中,使用包含正则表达式捕获的变量作为文件名的一部分有一些困难。我能够成功地在if控制器中使用捕获的变量。但是,当我在“将响应保存到文件”侦听器的文件前缀部分使用它时,它并不高兴 这是我正在执行正则表达式的JSON "command":"ARCHIVE_FILE" 这是正则表达式 Reference Name: command Regular Expression: "command":"(.+?)" Template: $1$ Match

在“将响应保存到文件”侦听器中,使用包含正则表达式捕获的变量作为文件名的一部分有一些困难。我能够成功地在if控制器中使用捕获的变量。但是,当我在“将响应保存到文件”侦听器的文件前缀部分使用它时,它并不高兴

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

"command":"ARCHIVE_FILE"
这是正则表达式

Reference Name:     command
Regular Expression: "command":"(.+?)"
Template:           $1$
Match No.           1
Default Value:      COMMAND_NOT_FOUND
我可以在“If控制器”中成功使用捕获的变量。虽然我必须承认,我有点被要求的双引号弄糊涂了。(我尝试过没有任何双引号,但if条件未触发)

正如我所说,我已经验证了上述方法的有效性。但是,当我尝试在“Save Response to a file”中将捕获的变量用作文件名前缀的一部分时,它会将文件按字面意思保存为“${command}”。不是存储在变量中的值

Filename prefix: d:\tmp\${command}
我怀疑我的问题与引用有关,于是我尝试了这个实验

Filename prefix: d:\tmp\"${command}"
这确实给了我变量中捕获的值,但它以双引号结尾,jmeter对此并不满意

jmeter.reporters.ResultSaver:为客户端创建示例文件时出错 下载Start java.io.FileNotFoundException: D:\apache-jmeter-2.9\tmp\client\“归档文件”(文件名, 目录名或卷标语法不正确)

感谢您的帮助。

您可以:

1.文件名前缀字段中的双斜杠:

d:\\tmp\\${command}
因为在这种情况下,单个反斜杠将被视为“转义”字符,变量不会扩展到其值

或:

2.将脚本中其他地方的
d:\tmp\
部分定义为单独变量,例如
${responsePath}
并用此变量替换文件名前缀字段中的
d:\tmp\

${responsePath}${command}
两种变体都能正常工作,但第二种变体似乎更通用

${responsePath}${command}