我的Beanshell后处理器中有此代码

String line;
String[] words;

line = SampleResult.getResponseMessage(); log.info(msg);

words  = line.split("*");

log.info("Here We are");

for (int i = 0; i < words.length; i++) {
  log.info(words[i]);
 }


这是我得到的错误


  2017/02/21 14:23:31错误-jmeter.util.BeanShellInterpreter:错误
  调用bsh方法:eval源文件:内联评估: String line; String[] words; line = SampleResult.getResponseMessage(); log.inf . . . '' : Attempt to resolve method: getResponseMessage() on undefined variable or class name: SampleResult 2017/02/21 14:23:31 WARN - jmeter.extractor.BeanShellPostProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of:字符串行;串[]
  话;行= SampleResult.getResponseMessage(); log.inf 。 。 '':
  尝试解析方法:未定义变量上的getResponseMessage()
  或类名称:SampleResult

最佳答案

严格来说,要消除该错误,您需要将SampleResult替换为prev


  prev-(SampleResult)-提供对上一个SampleResult的访问


source

因此解决异常:

line = prev.getResponseMessage();
log.info(line);


您总是可以看到对象本身为您提供的变量列表:

java - Jmeter BeanShell-访问响应数据-Beanshell错误?-LMLPHP

但是,如果我理解正确,则希望获取数据而不是采样器的响应消息。因此,您可能要使用getResponseDataAsString()而不是getResponseMessage()

所以一起:

line = prev.getResponseDataAsString();
log.info(line);

10-01 13:36