【问题标题】:How to make math calculations in JMeter's JS223 preprocessor or any other preprocessors如何在 JMeter 的 JS223 预处理器或任何其他预处理器中进行数学计算
【发布时间】:2019-07-27 11:19:50
【问题描述】:

我想对 JMeter 道具和/或用户变量进行一些基本的数学运算。如何使用前/后处理器来做到这一点?使用哪个以及如何进行计算?我是新手程序员 - 去年我用 Python 编写了一些代码,但在 Jmeter 中我完全迷失在脚本编写中。

我的示例简单脚本获取值为 1 的用户变量 "last_number",并且在每个 HTTP 请求之后或之前我想将其增加 1(整数)

x = vars.get("last_number");
x = x + 1;
log.info(x)
vars.put("last_number", x);

预期为x = 2。 我得到的是11

我错过了什么?

【问题讨论】:

    标签: variables jmeter integer


    【解决方案1】:

    您可以通过两种方式解决此问题: 1- 使用 JSR223 前/后处理器: vars.get() 返回字符串中的值,这就是它被连接的原因。同样,要将计算值用作变量,您必须使用 vars.put(String,String) ,它采用字符串参数,因此您必须将 int 转换为细绳。 您必须修改您的代码,例如:

    int x =(vars.get("last_number")).toInteger();
    x = x + 1;
    log.info(Integer.toString(x))
    vars.put("last_number", Integer.toString(x));
    

    2- 使用 JMeter 的计数器 请在下面找到在 JMeter 中使用 Counter 的屏幕截图。您可以使用计数作为参考。变量将增加 1 Counter Image

    谢谢!!我希望这会有所帮助

    【讨论】:

      【解决方案2】:

      varsJMeterVariables 的简写,因此vars.get() 返回String

      所以你需要:

      1. vars.get("last_number"); 的结果转换为Integer
      2. x 转换回字符串

      建议的代码更改:

      x = Integer.parseInt(vars.get("last_number"));
      x = x + 1;
      log.info('Result is: ' + x)
      vars.put("last_number", String.valueOf(x));
      

      更多信息:How to Perform Arithmetic Operations on Numeric Variables When Load Testing

      【讨论】:

        【解决方案3】:

        vars默认保存类型String,与+ 1一起使用被转换为字符串的串联

        您需要将 String 显式转换为 Integer/int。在 groovy 中添加 as int:

         x = vars.get("last_number") as int;
        

        【讨论】:

          猜你喜欢
          • 2019-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-07
          相关资源
          最近更新 更多