Jmeter - 当 csv 值为空时跳过填充参数/值

标签 jmeter

出于测试目的,我需要测试 api 调用,并使用 CSV 作为使用 while Controller 的循环作为参数发送数据。

一切都已配置并且工作正常,可以循环所有值。

enter image description here enter image description here

我的 csv 文件如下所示:

TC_name, currency, money, offset, limit, expectedCode
test_case1,USD,1,3,3,200
test_case2,EUR,1,3,3,200
test_case3,EUR,1,,3,200

但是,我需要测试上面图片中的可选字段,例如“金钱”,而不是创建另一个示例,例如:

enter image description here

而且,我想在同一个循环内实现。

那么,当 csv -> test_case3 中有空字段时,是否有可能完全跳过参数和值,但尊重循环逻辑?

因为,如果我发送带有空值的参数,我会得到如下响应:所需的“Money”参数为空

这样我就能够涵盖可选参数

感谢任何帮助。

最佳答案

  1. 添加JSR223 PreProcessor作为 HTTP Request 的 child 采样器需要修改哪些参数
  2. 将以下代码放入“脚本”区域:

    def newData = new org.apache.jmeter.config.Arguments()
    
    0.upto(sampler.getArguments().size() - 1, { idx ->
        def arg = sampler.getArguments().getArgument(idx)
        if (!arg.getValue().equals('')) {
            newData.addArgument(arg)
        }
    })
    
    sampler.setArguments(newData)
    
  3. 就是这样,预处理器将删除所有没有值的 HTTP 请求参数。

在上面的代码片段中,sampler 代表 HTTPSamplerProxy类实例,请检查 JavaDoc 以获取有关所有可用函数的完整详细信息。您可能还对 Top 8 JMeter Java Classes You Should Be Using with Groovy 感兴趣文章。

关于Jmeter - 当 csv 值为空时跳过填充参数/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61950984/

相关文章:

session - 使用 JMeter 进行负载测试 - 它会在加载时登录我的站点吗?

java - JMeter Beanshell 整数错误

jmeter - 使用属性作为逻辑 Controller 中的输入变量前缀(即 foreach)

java - 停止从 Java 代码开始的 JMeter 非 GUI 测试

JMeter 中的 JQuery 表达式

java - JMeter - 我可以将 2 个用户变量合并为一个吗?

plugins - JMeter 性能插件报告始终在 200 成功响应代码上显示 100% 的错误

java - 如何将xml文件传递给Jmeter中的新对象

jmeter - JMeter 中的 props 和 vars 对象有什么不同

jmeter - 在 apache-jmeter-5.4.1.tgz 中生成报告时出错