在jar file
中设置以下样本结果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
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");