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

时间:2018-05-04 11:41:31

标签: jmeter beanshell

以下是我遵循的步骤, 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。

任何人都可以帮助我。 提前谢谢。

此致 哈

3 个答案:

答案 0 :(得分:1)

  1. 如果您想要存储Long本身,则需要使用vars.putObject()功能,例如:

    vars.putObject("c", c);
    

    以及后来:

    log.info("My long value is: " + vars.getObject("c"));
    
  2. 如果您想要String代表 - 您需要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 i t is recommended to use JSR223 Test Elements and Groovy language而不是Beanshell,请参阅Apache Groovy - Why and How You Should Use It以获取更多详细信息。

答案 1 :(得分:0)

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

您可以使用String.valueOf()方法来执行该操作

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

或者只是您可以将长值附加到字符串。

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

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

答案 2 :(得分:0)

您可以使用以下内容: -

BeanShell预处理器

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

BeanShell采样器

log.info("Value of x==="+vars.get("x"));