我的JMeter版本是2.13的最新版本。我想添加一个HTTP请求来测试我的API,该方法是PATCH或PUT。
在Postman中,我可以测试API并使用PATCH方法成功使用一些URL参数。
例如:
URL: https://example.com/user/account
URL parameters: email ----> example@example.com
URL parameters: password ----> 12345678
Method: PATCH
这适用于Postman / Paw但是在JMeter中我设置了一个HTTP请求,添加了参数,但它失败了。
如何使用JMeter中的参数设置工作PATCH / PUT请求?
答案 0 :(得分:3)
我通过将参数添加到HTTP请求来解决了临时解决方案的问题:
https://example.com/user/account?email=example%40example.com&password=12345678
然后删除HTTP请求中的参数。 它现在有效。
我希望我能找到解决这个问题的正式解决方案。
答案 1 :(得分:2)
似乎JMeter(至少从版本2.13 r1665067开始)不支持使用"参数"来传递PATCH请求的参数。表
但是,您仍然可以使用以下变通方法传递参数:
GET
- ),您只需将它们附加到路径:/foo/bar?param1=2¶m2=21
。POST
- 像),你可以切换到"身体数据" " HTTP请求"中的选项卡部分并提供您的编码参数,如下所示:param1=2¶m2=21
。请务必对所有参数进行正确的URL编码。此外,您必须在" HTTP标头管理器"中添加一行来请求标头。部分。添加标头Content-Type
,其值为application/x-www-form-urlencoded
。答案 2 :(得分:1)
只是为了完成/改进@Lukas答案,如果要从CSV文件导入测试参数,则需要按照以下方式格式化HTTP请求路径:
/foo/bar?param1=${csv_param1_name}¶m2=${csv_param2_name}
之所以需要这样做,是因为至少对于PATCH请求,参数表将被忽略。
这也适用于JMeter v4.0 r1823414。
答案 3 :(得分:0)
Jmeter使用正文数据填充您的数据,但不需要标题,您可以将数据传递给后端。 enter image description here
但我使用httpServletRequest来获取参数,它是空的,我不知道为什么......
答案 4 :(得分:0)
如果您不必通过URL传递参数,则还可以使用JMeter的“ HTTP请求”采样器的“正文数据”选项卡。它还支持占位符。 JMeter Patch Example
PS:我使用的是JMeter 5.1.1版