Jmeter:类型化变量声明:方法调用Double.parseDouble

Jmeter:类型化变量声明:方法调用Double.parseDouble,jmeter,beanshell,jsonpath,Jmeter,Beanshell,Jsonpath,嘿,我正在为jmeter中的API测试编写beanshell脚本。我已经用beanshell编写了很多jmeter脚本,在使用Integer.parseInt()方法调用时效果很好,但是我有一个带小数位的值,其中我的SQL返回值为20.00000,Json路径提取器得到20.0,因此在比较它时测试失败。由于这个问题,我决定将这些值作为双变量而不是字符串进行比较,但是在BeanShell上使用double.parseDouble时,我得到的错误如下 2016/08/17 12:48:45错误-jm

嘿,我正在为jmeter中的API测试编写beanshell脚本。我已经用beanshell编写了很多jmeter脚本,在使用
Integer.parseInt()
方法调用时效果很好,但是我有一个带小数位的值,其中我的SQL返回值为20.00000,Json路径提取器得到20.0,因此在比较它时测试失败。由于这个问题,我决定将这些值作为双变量而不是字符串进行比较,但是在BeanShell上使用double.parseDouble时,我得到的错误如下

2016/08/17 12:48:45错误-jmeter.util.BeanShellInterpreter:调用bsh方法时出错:评估源文件:内联评估:
print(“宽度断言…”);int Total\u Printers\u SQL=Integer.parseInt(vars.get…''
:类型化变量声明:方法调用Double.parseDouble

2016/08/17 12:48:45警告-jmeter.assertions.BeanShellAssertion:org.apache.jorphan.util.JMeterException:调用bsh方法时出错:评估源文件:内联评估:
print(“宽度断言…”);int Total_Printers_SQL=Integer.parseInt(vars.get…“”
:类型化变量声明:方法调用Double.parseDouble

即使显示了错误,双变量的值也会打印在Jmeter提示符上,如下所示


如果有人是beanshell专家,可以帮助我识别错误,那就太棒了。谢谢!

如果您得到的数字不是有效的
双精度
1.2s
,例如,或者只是
null
),您将得到这样的异常。解决方法是检查值,或者简单地说(请注意,Beanhell无法正确传递异常,因此您必须检查任何异常,因此最好将其限制在这一行):


尝试使用
Double.parseDouble(vars.get(“Printer\u Width\u SQL\u”+i).toString())
…它可能需要“被告知”它是一个字符串。
double x = 0.0; // default value
String value = vars.get("myVar");
try
{
    x = Double.parseDouble(value);
}
catch(Exception e)
{
    log.info("Cannot parse " + value + " as double");
}