在JMeter中的BeanShell Sampler中将字符串解析为整数

我正在尝试在JMeter中将字符串解析为整数,但由于以下错误而失败。如果我尝试打印vars.get返回的字符串,它们看起来不错。

2014/06/28 00:08:52 WARN  - jmeter.assertions.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  Sourced file: inline evaluation of: ``if (ResponseCode != null && ResponseCode.equals ("200") == false ) {  int i = In . . . '' : Typed variable declaration : Method Invocation Integer.parseInt

以下是我的代码

if (ResponseCode != null && ResponseCode.equals ("200") == false )

{

int i = Integer.parseInt(vars.get("currentPMCount"));

int j = Integer.parseInt(vars.get("pmViolationMaxCount"));

if( i > j ){

log.warn("PM count on server is greater than max allowed count.");

}

log.warn( "The return code is " + ResponseCode); // this goes to the JMeter log file

}

else

{

Failure=true ;

FailureMessage = "The response data size was not as expected" ;

}

回答:

您的代码看起来不错,但是currentPMCount和/或pmViolationMaxCount变量可能是一个问题。

如果它们看起来确实不错并且看起来像Integers,并且没有超过Integer的最大值/最小值,则可以尝试以下操作:

  1. 请确保数字值周围没有“空格”字符,因为前导或尾随空格会导致转换失败。也许trim()对变量调用方法可以帮助:

    int i = Integer.parseInt(vars.get("currentPMCount").trim());

  2. 如果将脚本存储到文件中,然后在Beanshell断言中提供文件的路径,则会得到“有问题的”行号

  3. 我的最爱:将代码包含在try / catch块中,如下所示:

        try{

//your code here

}

catch (Exception ex){

log.warn("Error in my script", ex);

throw ex; // elsewise JMeter will "swallow" the above exception

}

这样,您将获得更多有用的堆栈跟踪Error invoking bsh method信息,而不是无所事事的糟糕消息。

有关更多提示和技巧,请参见如何使用BeanShell:JMeter最喜欢的内置组件指南。

以上是 在JMeter中的BeanShell Sampler中将字符串解析为整数 的全部内容, 来源链接: utcz.com/qa/431218.html

回到顶部