在JMeter中的BeanShell Sampler中将字符串解析为整数 [英] Parsing string to integer in BeanShell Sampler in JMeter

查看:6288
本文介绍了在JMeter中的BeanShell Sampler中将字符串解析为整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to parse a string into integer in JMeter but failed due to following error. If I try to print the strings returned by vars.get, they look good.

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 变量的问题。

Your code looks good however it can be a problem with currentPMCount and/or pmViolationMaxCount variables.

如果它们看起来很好并且看起来像整数并且不超过Integer的最大/最小值,您可以尝试以下方法:

If they really look good and look like Integers and don't exceed maximum/minimum values of Integer you can try the following:


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

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


  • 如果您将脚本存储到文件中,然后在Beanshell断言中提供文件的路径,您将会获取有问题的行号

  • 我的最爱:将您的代码包围到try / catch块中,如下所示:

  • If you store your script into a file and then provide path to the file in Beanshell Assertion you'll get "problematic" line number
  • My favourite: surround your code into try/catch block as follows:

    try{
        //your code here
    }
    catch (Exception ex){
        log.warn("Error in my script", ex);
        throw ex; // elsewise JMeter will "swallow" the above exception
    }
    


  • 这样你就可以得到更多信息丰富的堆栈跟踪,而不是糟糕的错误调用bsh方法消息,它什么也没说。

    This way you'll get more informative stacktrace instead of lousy Error invoking bsh methodmessage which tells nothing.

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

    See How to use BeanShell: JMeter's favorite built-in component guide for more tips and tricks.

    这篇关于在JMeter中的BeanShell Sampler中将字符串解析为整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆