加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:20:55 所属栏目:Java 来源:网络整理
导读:我正在尝试在JMeter中将字符串解析为整数但由于跟随错误而失败.如果我尝试打印vars.get返回的字符串,它们看起来很好. 2014/06/28 00:08:52 WARN - jmeter.assertions.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh meth
我正在尝试在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变量的问题.

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

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

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

>如果将脚本存储到文件中,然后在Beanshell断言中提供文件路径,则会出现“有问题”的行号
>我最喜欢的:将代码包围到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
}

通过这种方式,您将获得更多信息性的堆栈跟踪而不是糟糕的错误调用bsh methodmessage,它什么都不说.

有关更多提示和技巧,请参阅How to use BeanShell: JMeter’s favorite built-in component指南.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读