首页 > 解决方案 > 如何使http请求中的搜索参数在jmeter中成为动态的

问题描述

http请求:http://ipAddress:Port/SomeResource?Param1=value1&Param2=value2& ......

很快。这是 jmeter 中的一个 http 请求示例,它访问了一个 rest api 并以 JSON 格式获取响应。

这里的挑战是 Param1、param2、param3 .... 这些搜索参数编号不是恒定的,它可能会根据调用而改变,所以我正在制作一个 csv 文件,其中包含包含逗号分隔格式的搜索参数的行。

CSV file is like
param1,param2
param1,param2,param3
param1

我正在使用 CSV 数据配置从 csv 文件中提取数据并将其放入 http 请求中

在此处输入图像描述

并将其放入 http 请求中,例如

在此处输入图像描述

现在,如果参数为空,我不想在 http 请求标头中看到它,那么如何在 jmeter 中执行此操作。

标签: resthttptestingjmeterjsr223

解决方案


  1. 从HTTP 请求中删除所有“参数” ,它应该是干净的

    在此处输入图像描述

  2. 添加JSR223 PreProcessor作为您想要参数化的 HTTP 请求采样器的子级
  3. 将以下代码放入“脚本”区域:

    1.upto(4, {
        if (vars.get('param' + "$it") != null) {
            sampler.addArgument(vars.get('param' + "$it"),'someValue')
        }
    })
    
  4. 添加JSR223 PostProcessor作为您要参数化的请求的子项
  5. 将以下代码放入“脚本”区域:

    1.upto(4, {
        vars.remove("param" + "$it")
    })
    
  6. 就是这样,你现在应该得到你需要的东西。您不会在 JMeter GUI 中看到更改,您只能在运行时使用View Results Tree侦听器观察它们

    在此处输入图像描述


推荐阅读