JMeter:是否可以在 运行 期间添加 HTTP 请求采样器?

JMeter: Is it possible to add HTTP Request sampler during run?

我有一个 HTTP 请求 returns 一个 JSON 包含多个 url(主要是图像资源)的对象。 我不知道响应 JSON 中的网址数量,并且该数量可能会随时间变化。 我需要为我收到的每个网址创建一个 HTTP 请求。

是否可以在 运行 JMeter 流程​​中创建 HTTP 请求采样器? 是否有其他解决方案可以建议我执行以便将 HTTP 请求发送到 url 列表?

谢谢

  1. 添加 JSON Extractor as a child of the main request and come up with a JSON Path 表达式以提取图像链接和您想要点击的任何其他 URLs
  2. 添加第 1 步中的 ForEach Controller and configure it to read the JMeter Variable 引用名称并将输出变量设置为任何有意义的值
  3. 添加 HTTP Request 采样器作为 ForEach 控制器的子项,并将其配置为使用输出变量
  4. 就是这样,JMeter 将为原始 JSON
  5. 中出现的每个 URL 触发一个 HTTP 请求采样器

  • 假设你有以下 JSON:

    {
      "urls": [
        {
          "url": "http://example.com"
        },
        {
          "url": "http://jmeter.apache.org"
        },
        {
          "url": "http://jmeter-plugins.org"
        }
      ]
    }
    
  • 您可以使用以下 JSON 提取器设置将 URL 提取到 JMeter 变量中:

    它将为您提供以下 JMeter 变量:

    url_1=http://example.com
    url_2=http://jmeter.apache.org
    url_3=http://jmeter-plugins.org
    url_matchNr=3
    

  • 现在,如果您添加 ForEach 控制器并将其配置为:

  • 您将能够在作为 ForEach 控制器

    的子级的 HTTP 请求采样器中将 URL 引用为 ${current_url}