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