Beanshell Sampler JMeter 解析 RegularExpressionExtractor 时出错
Error in Beanshell Sampler JMeter for parsing RegularExpressionExtractor
在 jar 文件中设置以下示例结果
mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);
复制 JMeter
的 lib/ext
中的 jar 文件。
创建一个项目,其中 Regular expression extractor
附加到 java 请求,该请求在 jar 文件
中调用运行测试
响应字符串如下
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}
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.
请告诉我为什么会出现此错误。
如果您只想将值打印到 JMeter 日志文件,请使用 log.info
方法并使用 vars.get
.
BeanShell 代码:
log.info("returnValue " + vars.get("returnValue"));
您的 ${returnValue}
语句在语法上不正确,您至少需要用引号将其括起来,例如 "${returnValue}"
这样 Beanshell 解释器会将其视为 Java String
展望未来,仅将此语句放入 Beanshell 采样器中没有任何意义,您应该添加一些进一步的处理,即:
return "${returnValue}";
- 将 Beanshell 采样器结果设置为此值
SampleResult.setResponseData("${returnValue}".getBytes());
- 同上但使用 SampleResult shorthand
print("${returnValue}");
- 输出值到STDOUT
log.info("${returnValue}");
- 将值输出到 jmeter.log 文件
有关在 JMeter 脚本中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component
从 Beanshell 访问 JMeter 变量的方式与您想象的不同。
您将使用 "vars" built-in Beanshell 对象(或变量,如果您愿意)。
whatsActuallyReturned = vars.get("returnValue");
vars.put("returnValue", "whatever I want to put instead");
在 jar 文件中设置以下示例结果
mySampleResult.setResponseData("ReturnCode" + returnCode + "EndReturnCode" ,null);
复制 JMeter
的 lib/ext
中的 jar 文件。
创建一个项目,其中 Regular expression extractor
附加到 java 请求,该请求在 jar 文件
响应字符串如下
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}
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.
请告诉我为什么会出现此错误。
如果您只想将值打印到 JMeter 日志文件,请使用 log.info
方法并使用 vars.get
.
BeanShell 代码:
log.info("returnValue " + vars.get("returnValue"));
您的 ${returnValue}
语句在语法上不正确,您至少需要用引号将其括起来,例如 "${returnValue}"
这样 Beanshell 解释器会将其视为 Java String
展望未来,仅将此语句放入 Beanshell 采样器中没有任何意义,您应该添加一些进一步的处理,即:
return "${returnValue}";
- 将 Beanshell 采样器结果设置为此值SampleResult.setResponseData("${returnValue}".getBytes());
- 同上但使用 SampleResult shorthandprint("${returnValue}");
- 输出值到STDOUTlog.info("${returnValue}");
- 将值输出到 jmeter.log 文件
有关在 JMeter 脚本中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component
从 Beanshell 访问 JMeter 变量的方式与您想象的不同。
您将使用 "vars" built-in Beanshell 对象(或变量,如果您愿意)。
whatsActuallyReturned = vars.get("returnValue");
vars.put("returnValue", "whatever I want to put instead");