参数化从JSON POST请求中删除转义字符,并在JMeter中提供错误请求错误400

问题描述 投票:1回答:1

JMeter脚本记录捕获带有三个转义字符(\)的JSON post请求并重新运行,因为它没有参数化它工作正常。但是如果我们在请求体中的任何地方使用任何变量“$ {xyz}”并在JMeter中运行,则在将请求传递给应用程序时,所有三个斜杠(\)都变为两个斜杠(\)。然后请求失败为“BAD请求”,因为应用程序不接受带有两个斜杠的请求。

我已经尝试过“FileToString”方法,但没有成功。

 "Draft":{
"id": 123654656,
"draftdata":{\\\"accCat\\\":\\\"207\\\",\\\"accNumber\\\":\\\"656565
\\\",\\\"id\\\":${Var_ID},...}
}

 "Draft":{
"id": 123654656,
"draftdata":{\\\"accCat\\\":\\\"207\\\",\\\"accNumber\\\":\\\"656565
\\\",\\\"id\\\":9876,...}
}

当我用变量传递请求时,请求变得如下,并且可以在结果树中看作请求体

"Draft":{
"id": 123654656,
"draftdata":{\\"accCat\\":\\"207\\",\\"accNumber\\":\\"656565
\\",\\"id\\":${Var_ID},...}

但是如果没有参数化变量,它可以完美地工作,因为请求带有三个斜杠(\)。

json jmeter bad-request
1个回答
0
投票

我无法使用纯文本文件和__FileToString()函数中的有效负载重现您的问题

enter image description here

JMeter完全按原样发送文本数据,包括在适当位置的三重反斜杠。我甚至使用Wireshark嗅探工具捕获了请求,以排除View Results Tree监听器的潜在问题

enter image description here

可能是你遇到了一种问题,这个问题已经在最新的JMeter版本中得到修复,according to JMeter Best Practices you should always be using the latest version of JMeter所以请确保升级到JMeter 5.1JMeter Downloads页面的最新版本,你应该可以使用参数化没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.