出于测试目的,我需要测试 api 调用,并使用 CSV 作为使用 while Controller 的循环作为参数发送数据。
一切都已配置并且工作正常,可以循环所有值。
我的 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
但是,我需要测试上面图片中的可选字段,例如“金钱”,而不是创建另一个示例,例如:
而且,我想在同一个循环内实现。
那么,当 csv -> test_case3 中有空字段时,是否有可能完全跳过参数和值,但尊重循环逻辑?
因为,如果我发送带有空值的参数,我会得到如下响应:所需的“Money”参数为空,
这样我就能够涵盖可选参数
感谢任何帮助。
最佳答案
- 添加JSR223 PreProcessor作为 HTTP Request 的 child 采样器需要修改哪些参数
将以下代码放入“脚本”区域:
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)
就是这样,预处理器将删除所有没有值的 HTTP 请求参数。
在上面的代码片段中,sampler
代表 HTTPSamplerProxy类实例,请检查 JavaDoc 以获取有关所有可用函数的完整详细信息。您可能还对 Top 8 JMeter Java Classes You Should Be Using with Groovy 感兴趣文章。
关于Jmeter - 当 csv 值为空时跳过填充参数/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61950984/