beanshell Sampler Jmeter中的错误,用于解析gromareXpressionExtractor



在jar file

中设置以下样本结果
mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);

JMeterlib/ext中复制JAR文件。

创建一个将Regular expression extractor附加到Java请求的项目,该请求在JAR文件中调用runtest

中的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 string

前进,只将此语句放入Beanshell采样器中没有任何意义,您应该添加一些进一步的处理,即:

  • return "${returnValue}";-将将beanshell采样器结果设置为此值
  • SampleResult.setResponseData("${returnValue}".getBytes());-与上述相同,但使用采样速记
  • print("${returnValue}");-将值输出到stdout
  • log.info("${returnValue}");-将值输出到 jmeter.log file

请参阅如何使用beanshell:Jmeter喜欢的内置组件,以获取有关在Jmeter脚本中使用Beanshell的更多信息

如果只想将值打印到jmeter日志文件,请使用log.info方法并使用vars.get

beanshell代码:

log.info("returnValue " + vars.get("returnValue"));

从beanshell访问jmeter变量的方式与您所假设的不同。

您将使用" vars"内置的beanshell对象(或变量,如果愿意)。

whatsActuallyReturned = vars.get("returnValue");
vars.put("returnValue", "whatever I want to put instead");

最新更新