使用预处理器将长值存储到 Jmeter 中的变量,并在采样器中 print/use 存储相同的值

Store a long value to a variable in Jmeter using preprocessor and print/use the same value in a sampler

以下是我遵循的步骤, 1) 添加了一个 BeanShell 采样器,并向同一采样器添加了一个 Bean Shell 预处理器。

long c = 25478995L;
log.info(c + " - It is long");
vars.put("c",c)

2) 我正在尝试在 Bean Shell 采样器中打印值 c,如下所示,

${c}

3) 但是当我在视图结果树中看到时,我得到的是 ${c} 而不是我期望查看 25478995。

谁能帮帮我。 提前致谢。

此致, 哈里

您需要在 vars.put 方法中将长数字转换为字符串。 有 2 种方法可以做到这一点

您可以使用 String.valueOf() 方法来做到这一点

long c = 25478995L;
vars.put("c",String.valueOf(c));

或者简单地将 long 值附加到字符串。

long c = 25478995L;
vars.put("c",c+"");

您可以关注 this blogs 获取此类信息

您可以使用以下:-

BeanShell 预处理器

long c = 25478995L;
log.info(c + " - It is long");
vars.put("x",c.toString());

BeanShell 采样器

log.info("Value of x==="+vars.get("x"));
  1. 如果您想存储一个 Long per se you need to use vars.putObject() 函数而不是像:

    vars.putObject("c", c);
    

    及以后:

    log.info("My long value is: " + vars.getObject("c"));
    
  2. 如果你想要String representation - you need to convert your Long to String first喜欢:

    vars.put("c", Long.toString(c));
    
  3. 不要在脚本中引用像 ${c} 这样的变量,而是使用 vars.get("c");vars.getObject("c");
  4. 从 JMeter 3.1 开始,我t is recommended to use JSR223 Test Elements and Groovy language rather than Beanshell for performance reasons, see Apache Groovy - Why and How You Should Use It 了解更多详细信息。