gpt4 book ai didi

jmeter - 从 JMeter HTTP 请求中临时删除参数

转载 作者:行者123 更新时间:2023-12-01 11:00:15 25 4
gpt4 key购买 nike

我的场景是我在循环中发送 HTTP 请求,其中参数值基于 JMeter 变量。当第一次进入循环时,我可能有此时未设置的变量,因此它们为空,因此我想从 HTTP 请求中删除该参数。我可以使用下面的代码成功地做到这一点。然而,在稍后的循环迭代中,这个变量现在可以有一个值,我想包括我之前删除的参数。所以我的问题是,如何从我的 HTTP 请求中暂时删除参数?

根据以下内容,我有一个 JMeter 测试计划摘录:

  • 虽然 Controller
  • 一些逻辑
  • HTTP 请求
  • JSR223 预处理器(常规)

  • 我的 HTTP 请求具有以下参数:

    名称值

    输入A ${A}

    输入B ${B}

    我的预处理器脚本如下所示:
      for (Iterator iterator = sampler.getArguments().iterator();
    prop = iterator.next();
    String value = prop.getStringValue();
    if (value.contains('\${')) {
    iterator.remove();
    }
    }

    最佳答案

  • 最快、最简单和恕我直言正确的解决方案是使用 __evalVar() JMeter 函数如:

    JMeter EvalVar Function

    因此,如果 ${A}变量未定义 - inputA参数将与空值一起发送,并且这些参数会被表现良好的应用程序忽略。见系列How to Use JMeter Functions JMeter 函数入门指南
  • 我记得回答过类似的问题 here ,假设使用 Beanshell 检查变量是否为空
  • 如果由于某种原因第 1 点和第 2 点不适用,这里是完全删除参数的正确代码:
    import org.apache.jmeter.config.Arguments;

    Arguments args = sampler.getArguments();
    Iterator it = args.iterator();

    while (it.hasNext()) {
    def argument = it.next();
    if (argument.getStringValue().contains('${')) {
    args.removeArgument(argument.getName());
    }
    }
  • 关于jmeter - 从 JMeter HTTP 请求中临时删除参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916858/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com