1

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

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

例如:

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 请求?

4

5 回答 5

3

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

https://example.com/user/account?email=example%40example.com&password=12345678

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

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

于 2015-09-01T03:23:37.000 回答
2

似乎 JMeter(至少从 2.13 r1665067 版开始)不支持使用“参数”表为 PATCH 请求传递参数。

但是,您仍然可以使用以下解决方法传递参数:

  • 如果您想在查询字符串中包含参数(GET-like ),您可以将它们附加到路径:/foo/bar?param1=2&param2=21
  • 如果您想在正文中包含参数(POST-like),您可以切换到“HTTP 请求”部分中的“正文数据”选项卡,并在那里提供您的编码参数,如下所示param1=2&param2=21:确保正确地对所有参数进行 URL 编码。此外,您必须在“HTTP 标头管理器”部分中添加一行以请求标头。Content-Type添加带有值的标题application/x-www-form-urlencoded
于 2016-04-27T15:15:49.433 回答
1

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

/foo/bar?param1=${csv_param1_name}&param2=${csv_param2_name}

这需要完成,因为至少对于 PATCH 请求,参数表被忽略。

这也适用于 JMeter v4.0 r1823414。

于 2019-02-20T13:06:49.623 回答
0

如果您不必通过 URL 传递参数,您还可以使用 JMeter 的“HTTP Request”采样器的“Body Data”选项卡。它还支持占位符。 JMeter 补丁示例

PS:我使用 JMeter 版本 5.1.1

于 2019-12-11T10:26:08.140 回答
0

Jmeter 使用正文数据填充您的数据,但不需要标题,您可以将数据传递到后端。 在此处输入图像描述

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

于 2017-02-27T09:45:20.647 回答