JMeter:Add/remove body HEADERS multipart/form-data 中的参数

JMeter: Add/remove body HEADERS for parameters in multipart/form-data

我很难更改 header 参数(Content-Type:text/plain;字符集=US-ASCII 到 Content-Type:application/json ) 对于 JMeter 中的 POST 调用 - 将 JSON 文本作为 mutlipart/form-data 参数发送,内容为 application/json.

尝试了此代码片段 - sampler.getHeaderManager().remove(1) - 它无助于删除 body headers。

--v_23LkJlLQpYLpcElRptQYb74v7-UeP
Content-Disposition: form-data; name="symbol"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

{"name":"man_234","Id":"7d12d44c2"}
--v_23LkJlLQpYLpcElRptQYb74v7-UeP--

你能给我一些建议吗

如果你想修改 请求正文中的 Content-Type: text/plain; charset=US-ASCII 你需要以不同的方式进行,即:在 JSR223 PreProcessor 中使用以下代码:

def oldBody = sampler.getArguments().getArgument(0).getValue()
def newBody = oldBody.replaceAll('Content-Type: text/plain; charset=US-ASCII','Content-Type: application/json')
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',newBody,'')

但是,您的方法可能不是最好的方法,例如 multipart request each FormData entry can have its own Content-Type so instead of amending request you need to build it in a different way. See Testing REST API File Uploads in JMeter 文章中关于手动构建多部分请求的示例。