【问题标题】:How to modify HTTP request before sending in JMeter through Beanshell pre processor?如何在通过 Beanshell 预处理器在 JMeter 中发送之前修改 HTTP 请求?
【发布时间】:2017-05-18 01:33:38
【问题描述】:

我的 csv 文件中有测试用例。请求 URL 有一个 custom 变量。

示例网址:.../abc/$id

我需要将这个id 替换为我们从上一个请求中得到的id。我使用 json 提取器从响应中获取 id。现在我需要在下一个测试用例请求中更新这个id。使用以下代码从 jmeter 上下文中获取请求 URL:

String path = ctx.getCurrentSampler().toString(); 
path.replaceAll("$id", id);

我无法在 jmeter 上下文中设置此更新后的 URL (ctx)

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:
    1. 您需要将新路径值分配给path 变量
    2. 您需要使用sampler.setPath() method 将采样器路径设置为新值

    所以你需要修改你的代码:

    String path = ctx.getCurrentSampler().toString();
    path = path.replaceAll("$id", id);
    sampler.setPath(path);
    

    演示:


    还可以考虑切换到JSR223 PreProcessorGroovy language,因为Groovy 的性能要高得多,它可以更好地支持新的Java 功能并在顶部提供一些额外的“语法糖”。有关详细信息,请参阅Groovy is the New Black 文章。

    【讨论】:

      【解决方案2】:

      如果可能,尽量避免使用前/后处理器。 您的要求非常简单直接。

      直接在路径中使用这个 - 假设 id 是具有值的变量的名称。

      /abc/${id}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2021-08-05
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多