用于分析RegularExpressionExtractor的Beanshell采样器JMeter中存在java错误
在jar文件中设置下面的示例结果
mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);
在JMeter
的lib/ext
中复制jar文件
创建一个项目,其中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
比恩希尔代码
${returnValue}
比恩希尔的错误
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.
请让我知道为什么我会得到这个错误
# 1 楼答案
如果只想将值打印到JMeter日志文件,请使用
log.info
方法和vars.get
BeanShell代码:
# 2 楼答案
从Beanshell访问JMeter变量的方式与您所设想的不同
您将使用“vars”内置Beanshell对象(或者变量,如果您愿意)
# 3 楼答案
你的
${returnValue}
语句在语法上是不正确的,你至少需要用"${returnValue}"
这样Beanshell解释器就会把它当作Java String来处理接下来,仅仅把这句话放在Beanshell取样器中没有任何意义,你应该添加一些进一步的处理,即:
return "${returnValue}";
-将Beanshell Sampler result设置为该值SampleResult.setResponseData("${returnValue}".getBytes());
与上文相同,但使用SampleResult速记print("${returnValue}");
-将值输出到STDOUTlog.info("${returnValue}");
-将值输出到jmeter。日志文件有关在JMeter脚本中使用Beanshell的更多信息,请参见How to Use BeanShell: JMeter's Favorite Built-in Component