我有专有的基于 http 的 API 可以从 JMeter 进行测试。不幸的是,API 的一些端点需要带有请求主体的 http DELETE 方法(我知道它的 questionable API design to use DELETE with request body ,但我无法更改该 API 并需要对其进行测试)。
如何从 JMeter 对其进行测试?似乎标准的 HttpRequest 采样器在没有任何警告的情况下默默地忽略了我的 body 有效载荷。 (当我在 POSTMAN 中尝试它时,它会发送 DELETE 方法的请求正文)
我确实找到了一个名为 HTTP Raw Request 的旧 JMeter 插件这有点帮助,但仍然不会为我的 body 有效负载自动计算“Content-Length:”http header ......所以我必须为每个测试用例手动执行它 - 这对于动态生成的数据有效负载来说是一个痛苦。
所以我的问题仍然存在:如何使用来自 JMeter 的请求正文测试 HTTP DELETE?
注意 1: 从 jMeter 版本开始。 3.1(参见 bugzilla #60358)修复了 Http GET 请求能够在请求中发送正文...但未添加 DELETE。
注意 2:参见 bugzilla #61443对于带有正文的 DELETE 请求。
注意 3: 我正在使用名为“Java”的客户端实现。
最佳答案
根据引用文档:
http 请求采样器有两种实现。名为“Java”的非默认存在不传递 DELETE 请求正文的问题。 幸运的是,名为“HttpClient4”的默认实现根据 JMeter 数据输入屏幕正确传递了 DELETE 操作的请求负载。 要更改 http 请求采样器的实现,您必须转到 HTTP 请求采样器的“高级”选项卡并选择客户端实现“HttpClient4”而不是“Java”。这是屏幕截图:
关于http - JMeter http 请求删除正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45744099/