当前位置: 首页 > 面试题库 >

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

祖迪
2023-03-14
问题内容

我正在尝试在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最喜欢的内置组件指南。



 类似资料:
  • 如何在Kotlin中将字符串转换为字符串数组?为了证明这一点,我有: 我想把它转换成。

  • 问题内容: 我有一个将存储Number对象的列表。该列表将通过分析字符串列表来填充,其中每个字符串都可以表示Number的任何子类。 如何将字符串解析为通用数字,而不是特定的整数或浮点数? 问题答案: 数字不能实例化,因为它是抽象类。我建议传入数字,但是如果您设置为字符串,则可以使用任何子类来解析它们, 要么 @请参阅NumberFormat

  • 问题内容: 我在尝试使用265,858解析时得到提示。 有什么办法可以将其解析为整数? 问题答案: 这个逗号是小数点分隔符还是这两个数字?在第一种情况下,您必须提供给使用逗号作为小数点分隔符的类: 结果是。但是使用美国语言环境,您将获得: 这是因为在法国他们将逗号视为小数点分隔符,而在美国将它们视为分组(千位)分隔符。 如果这是两个数字- 它们分别解析两个单独的字符串。

  • 我正在使用CSV数据集配置来读取CSV文件。 我有进口包裹吗?

  • 问题内容: 我从声称的API获取下一个字符串 所有日期格式均为ISO8601。 我正在尝试下一个代码: 不幸的是,结果 updatedAt 为nil 问题答案: 您的日期格式不正确,您需要考虑毫秒。 需要澄清的是,在日期格式中添加可以解决此问题。

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。