如何在jmeter中使用beanshell预处理器删除空参数

乔恩·亚伯拉罕

我正在尝试读取包含500多个行的csv文件,并且每行将作为对API的请求。现在我的问题是某些参数具有空字符串,我想设置一个条件,以防万一如果参数返回空字符串,则在点击API之前先从请求主体中删除该参数

以下是我的json

{
  "body": {
    "Id1": "${Id1}",
    "addressId": "${addressId}",
    "languageCode": "${languageCode}",
    "tempId": "${tempId}"
}

现在阅读csv后,我在请求正文中得到以下值

{
  "body": {
    "Id1": "1",
    "addressId": "1233",
    "languageCode": "E",
    "tempId": ""
}

如您所见,tempId具有空字符串。现在使用bean-shell预处理程序,我正在尝试删除它,但是没有运气

Object requestBody = sampler.getArguments().getArgument(0).getValue();

if (requestBody.get("tempId").equals("")){
    sampler.getArguments.removeArgument("tempId");
}

当我查看结果树时,我看不到tempId从请求中删除。我将不胜感激任何帮助

UBIK LOAD PACK

避免使用Beanshell弃用和降低性能。

使用groovy代替此代码:

import org.apache.jmeter.config.Arguments;
def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.body.each { entry ->
    if (entry.getValue().equals('')) {
        newRequest.body.remove(entry.getKey())
    }
}
def arguments = new Arguments();
sampler.setArguments(arguments);
sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(newRequest), '')
sampler.setPostBodyRaw(true)

看到:

如果您想正确学习jmeter,这本书将为您提供帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在jmeter中使用beanshell预处理器获得给事务控制器的名称

JMeter简单的BeanShell预处理器

如何在通过 Beanshell 预处理器在 JMeter 中发送之前修改 HTTP 请求?

如何在预处理器#ifdef 中使用“else if”?

在JMeter中使用Beanshell预处理程序进行参数化

JMeter-从BeanShell预处理器中停止线程

无法使代码在 Jmeter 的 Beanshell 预处理器中工作

如何从 beanshell 预处理器获取采样器主体数据 - JMeter

使用beanshell预处理器存储Jmeter采样器属性值

如何通过Inno Setup在预处理器函数中使用预处理器变量

如何在Nifi ExecuteSQL处理器中使用参数?

如何在 Beanshell 预处理器中获取 HTTP POST 请求正文?

Inno Setup-如何在[代码]中使用预处理器指令?

你如何在 C 预处理器中使用定义进行逻辑异或异或

如何在包含文件中使用预处理器宏?

如何在GCC基本asm中使用预处理器宏?

如何在我的 Vue 组件中使用 SASS 预处理器?

如何在Angle 7中使用CSS预处理器

如何在C中使用预处理器编写动态大小的数组?

如何在Rust的FFI中使用C预处理器宏?

Jmeter中Beanshell预处理器中字符串数组的处理

如何在jmeter中使用jsr 223预处理程序?

如何从#define中删除C样式的强制转换,以便可以在预处理器#if中使用它?

JMeter:如何阻止预处理器额外运行

如何在 iOS 项目中定义预处理器标志并在 Swift 代码中使用它?

如何在 C# 中使用预处理器指令仅在 Windows 10 上执行一些代码?

如何在标头中使用预处理器宏来命名数组的特定部分

Jmeter。BeanShell后处理器

Jmeter beanshell后处理器