jmeter的beanshell函数报错:Method indexOf( java.lang.String ) not found in class'[Ljava.lang.String;',应该怎么解决?
时间: 2024-02-06 09:09:11 浏览: 26
这个错误是因为你在使用 `indexOf()` 函数时,传入的参数类型不正确导致的,`indexOf()` 函数接受的是一个字符串类型的参数,而你传入的是一个字符串数组类型。
要解决这个问题,你可以将传入 `indexOf()` 函数的参数转换为字符串类型。你可以尝试使用以下代码:
```
String[] arr = {"a", "b", "c"};
String str = Arrays.toString(arr); // 将数组转换为字符串
int index = str.indexOf("b"); // 使用indexOf()函数查找子字符串
```
这样就可以避免上述错误了。
相关问题
2023-05-30 09:36:55,838 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.json.JSONObject; import org.json.JSONArray; String response = prev.g . . . '' : Error in method invocation: Method put( java.lang.String, java.lang.Integer ) not found in class'org.apache.jmeter.threads.JMeterVariables'
这个错误日志看起来是在使用 JMeter 进行测试时出现的。它表明在你的 BeanShell 脚本中出现了一个错误,因为 `put` 方法无法在 `JMeterVariables` 类中找到。
这个错误通常发生在你正在尝试将一个整数值存储到 JMeter 变量中,但是你使用了错误的方法名。正确的方法名应该是 `putObject` 而不是 `put`。你可以尝试使用以下代码来存储整数值:
```
vars.putObject("myVar", new Integer(123));
```
请注意,这里使用的是 `putObject` 方法,而不是 `put` 方法。这应该可以解决你的问题。
Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``int total = Integer.parseInt(vars.get("total")); log.info("total="+total); sum = . . . '' : Error in method invocation: Method put( java.lang.String, int ) not found in class'org.apache.jmeter.threads.JMeterVariables'
这个错误的原因是在 BeanShell 脚本中调用了 JMeterVariables 类的 put 方法,但是该类并没有 put 方法接受 int 类型的参数。因此,你应该将参数转换为字符串类型才能正确地调用 put 方法,如下所示:
```
int total = Integer.parseInt(vars.get("total"));
log.info("total="+total);
sum = Integer.parseInt(vars.get("sum"));
vars.put("sum", String.valueOf(sum + total));
```
这样,就可以正确地将 sum 和 total 相加,并将结果存储回 JMeter 变量中。