【问题标题】:BeanShell PreProcessor updates User define variablesBeanShell PreProcessor 更新用户定义变量
【发布时间】:2017-09-29 03:55:06
【问题描述】:

我是 JMeter 问题的新手。

在一个测试脚本中,我有一个 BeanShell PreProcessor 元素,它更新之前在“用户定义的变量”元素中定义的一些变量。

后来这些变量在“Http请求”中使用。但是,http 请求中使用的值是默认值。

由于一些调试 print(),脚本似乎正在运行;

我的问题是是否有必要延迟脚本以确保 BeanShell 完成?

非常感谢您的关注

【问题讨论】:

    标签: variables preprocessor jmeter beanshell


    【解决方案1】:

    没有必要对 Beanshell 预处理器进行任何延迟,因为它是在 请求之前执行的。我建议检查您的 jmeter.log 文件以查看是否存在任何脚本问题,因为 Beanshell 预处理器不会在任何地方报告错误,包括查看结果树侦听器。

    至少有两种方法可以确保您的 Beanshell 脚本一切正常:

    1. 将您的调试打印代码放在变量替换逻辑之后,看看它是否会触发
    2. 在您的 HTTP 请求中直接使用 JMeter __Beahshell 函数。如果没问题 - 查看结果树将展示 beanshell 生成的值。如果不是 - 该字段将为空白,并且相关错误将显示在日志中。

    示例测试用例:

    鉴于以下测试计划结构:

    • 具有 1 个用户和 1 个循环的线程组
    • 使用路径 / 和参数 q 向 google.com 发出 HTTP GET 请求

    如果您在 beanshell 函数之后提供参数“q”:

    ${__BeanShell(System.currentTimeMillis())}
    

    并查看查看结果树的“请求”选项卡,您应该会看到如下内容:

    GET http://www.google.com/?q=1385206045832
    

    如果您将功能更改为不正确的内容,例如:

    ${__BeanShell(Something.incorrect())}
    

    您会看到一个空白请求。

    更改现有变量(或在变量不存在时创建新变量)的正确方法如下所示

    vars.put("variablename", "variablevalue");
    

    *重要提示:* JMeter 变量是 Java 字符串,如果您尝试将其他内容(日期、整数等)设置为 JMeter 变量,则需要以某种方式将其转换为字符串。

    例子:

    int i = 5;
    vars.put("int_i", String.valueOf(i));
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以更新“用户定义变量”的值。

      1. 你必须创建一个豆壳采样器
      2. vars.put("user_defined_variable", "newvalue");

      @theINtoy 做对了。

      http://www.blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell

      【讨论】:

      • 确保你定义的变量没有初始值,否则下次迭代会刷新。
      【解决方案3】:

      我也是 jmeter 的新手,但我知道“用户定义的变量”中定义的变量是常量,因此您无法更改它们。我建议在预处理器或 CSV 数据集配置中使用“用户参数”。

      【讨论】:

      • 这不是真的。可以使用 BeanShell 预处理器覆盖用户定义变量的值。请参阅:Changing JMeter Variables on the fly 本质上:假设您有一个名为“continue”的用户定义变量,其值为“true”,该变量在 While 循环中的某处使用。您可以将其设置为“false”,如下所示:vars.put("counter","false");
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      相关资源
      最近更新 更多