Beanshell Sampler JMeter中用于解析RegularExpressionExtractor的错误
问题内容:
在jar文件中设置以下示例结果
mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);
复制jar文件到lib/ext
中JMeter
。
创建一个项目,该项目Regular expression extractor
附加到java请求,该请求在jar文件中调用runtest
响应字符串在下面
ReturnCodeThu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,98.74105EndReturnCode
正则表达式提取器
Reference Name: returnValue
Regular Expression: ReturnCode(.*?)EndReturnCode
Beanshell代码
${returnValue}
Beanshell错误
Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: `` try { Thu Feb 16 08:01:56 GMT 2017,Thu Feb 16 09:09:27 GMT 2017,0:1:7:31,9 . . . '' Encountered "16" at line 4, column 13.
请让我知道为什么我收到此错误。
问题答案:
您的${returnValue}
语句在语法上是不正确的,您至少需要用引号将其括起来,"${returnValue}"
以便Beanshell解释器将其视为Java字符串。
展望未来,仅将此语句放入Beanshell Sampler并没有任何意义,您应该添加一些进一步的处理,即:
return "${returnValue}";
-将Beanshell Sampler结果设置为此值SampleResult.setResponseData("${returnValue}".getBytes());
-与上述相同,但使用SampleResult速记print("${returnValue}");
-将值输出到STDOUTlog.info("${returnValue}");
-将值输出到 jmeter.log 文件
有关在JMeter脚本中使用Beanshell的更多信息,请参见如何使用BeanShell:JMeter的最喜欢的内置组件。