Jmeter: BeanshellAssertion Error: Method Not Found In Class

Jmeter: BeanshellAssertion Error: Method Not Found In Class

我只想读取来自 jdbc 采样器的响应并在 http 请求中使用它。

我根据 jdbc 请求创建了一个 BeanShellAssertion 脚本,只写了下面的代码,没有别的。

if(vars.getObjects("jdbcresult1").size!=0)
{
   String jdbcresult1=vars.getObjects("jdbcresult1").get(0).get("jdbctrackingnumber1")+"";
   vars.put("trackingnumber1",jdbcresult1);
   log.info("TrackingNumber1 is: "+trackingnumber1);
}

错误:

2020-08-13 23:32:47,030 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.lang.Object; if(vars.getObjects("jdbcresult1").size!=0) {
String . . . '' : Error in method invocation: Method getObjects( java.lang.String ) not found in class'org.apache.jmeter.threads.JMeterVariables'

2020-08-13 23:32:47,030 WARN o.a.j.a.BeanShellAssertion: Error in BeanShellAssertion

问题1:你如何决定应该使用什么来编写代码来读取jdbc响应值: 一种。豆壳断言 b. beanshell后处理器 C。豆壳监听器

问题2:原问题的解决方法,解决错误?

问题在于:

 vars.getObjects(...) 

不存在。

应该是:

 vars.getObject(...)

参见:

另外最好使用JSR223断言: