1

我需要从 jmeter 中的字符串中删除尾随 crlf。我使用了以下功能

${__javaScript('${varu_2}'.replace(/[\\r\\n]/g\,""))}

它给了我错误“org.mozilla.javascript.EvaluatorException:未终止的字符串文字(#1)”。

任何帮助,将不胜感激。

4

1 回答 1

0

包含多行的变量的内联评估 ( ${varu_2} ) 破坏了 javascript 评估。

例如,javascript 将被解释为:

'line1
line2'.replace(/[\\r\\n]/g\,"")

第一行是一个未终止的字符串,就像错误消息告诉我们的那样。

为了避免这种行为,我建议使用 JMeterVariables 对象,但由于 javascript 实现(Rhino)似乎不能很好地支持内联正则表达式,你应该使用 2 替换函数而不是你的正则表达式:

${__javaScript(vars.get('varu_2').replace( "\r"\, "" ).replace("\n"\,""))}

或者,如果您愿意,可以使用beanshell 函数使用任何正则表达式:

${__BeanShell(vars.get("varu_2").replaceAll("[\r\n]"\,""))}
于 2014-06-01T13:37:40.560 回答