JMeter:如何使用补丁方法发送参数?

JMeter:如何使用补丁方法发送参数?,jmeter,http-put,http-patch,Jmeter,Http Put,Http Patch,我的JMeter版本是最新版本2.13。我想添加一个HTTP请求来测试我的API,方法是PATCH或PUT 在Postman中,我可以测试API并成功地使用带有一些URL参数的补丁方法 例如: URL: https://example.com/user/account URL parameters: email ----> example@example.com URL parameters: password ----> 12345678 Method: PATCH 这在Post

我的JMeter版本是最新版本2.13。我想添加一个HTTP请求来测试我的API,方法是PATCH或PUT

在Postman中,我可以测试API并成功地使用带有一些URL参数的补丁方法

例如:

URL: https://example.com/user/account
URL parameters: email ----> example@example.com
URL parameters: password ----> 12345678
Method: PATCH
这在Postman/Paw中有效,但在JMeter中,我设置了一个HTTP请求,添加了参数,但失败了


如何使用JMeter中的参数设置工作修补程序/放置请求?

我通过将参数添加到HTTP请求中,用临时解决方案解决了这个问题:

然后删除HTTP请求中的参数。 现在可以了


我希望我能找到一个正式的解决方案来解决这个问题。

我通过向HTTP请求添加参数,用临时解决方案解决了这个问题:

然后删除HTTP请求中的参数。 现在可以了


我希望我能找到一个正式的解决方案来解决这个问题。

至少在版本2.13 r1665067中,JMeter似乎不支持使用参数表为修补程序请求传递参数

但是,仍然可以使用以下变通方法传递参数:

如果希望查询字符串中的参数为like,只需将它们附加到路径:/foo/bar?param1=2¶m2=21即可。 如果希望在body POST中使用参数,可以切换到HTTP请求部分中的body data选项卡,并在那里提供编码参数,如下所示:param1=2¶m2=21。确保对所有参数进行正确的URL编码。此外,您必须在HTTP标头管理器部分中添加一行到请求标头。添加值为application/x-www-form-urlencoded的标题内容类型。
至少在版本2.13 r1665067之后,JMeter似乎不支持使用参数表为修补程序请求传递参数

但是,仍然可以使用以下变通方法传递参数:

如果希望查询字符串中的参数为like,只需将它们附加到路径:/foo/bar?param1=2¶m2=21即可。 如果希望在body POST中使用参数,可以切换到HTTP请求部分中的body data选项卡,并在那里提供编码参数,如下所示:param1=2¶m2=21。确保对所有参数进行正确的URL编码。此外,您必须在HTTP标头管理器部分中添加一行到请求标头。添加值为application/x-www-form-urlencoded的标题内容类型。
Jmeter使用主体数据填充数据,但不需要头,您可以将数据传递到后端。


但是我使用httpServletRequest获取参数,它是空的,我不知道为什么…

Jmeter使用主体数据填充数据,但不需要标头,您可以将数据传递到后端。


但是我使用httpServletRequest获取参数,它是空的,我不知道为什么…

只是为了完成/改进@Lukas answer,如果您从CSV文件导入测试参数,您需要按如下格式格式化HTTP请求路径:

/foo/bar?param1=${csv_param1_name}&param2=${csv_param2_name}
需要这样做,因为至少对于补丁请求,参数表被忽略


这也适用于JMeter v4.0 r1823414。

仅为了完成/改进@Lukas answer,如果要从CSV文件导入测试参数,则需要按如下方式格式化HTTP请求路径:

/foo/bar?param1=${csv_param1_name}&param2=${csv_param2_name}
需要这样做,因为至少对于补丁请求,参数表被忽略


这也适用于JMeter v4.0 r1823414。

如果不必通过URL传递参数,也可以使用JMeter的“HTTP请求”采样器的“正文数据”选项卡。它还支持占位符。


PS:我使用JMeter版本5.1.1

如果您不必通过URL传递参数,也可以使用JMeter的“HTTP请求”采样器的“正文数据”选项卡。它还支持占位符。


PS:我使用JMeter版本5.1.1

我使用了contentType application/json并将数据放入请求体,现在控制器可以使用@RequestBody获取数据。注意:数据应该是json类型。我使用了contentType application/json并将数据放在请求体中,现在控制器可以使用@RequestBody获取数据。注意:数据应该是json类型。参见本文,我解决了类似问题:参见本文,我解决了类似问题: