JMeter http请求DELETE与body

时间:2017-08-17 20:06:02

标签: http testing jmeter automated-tests jmeter-plugins

我有专有的基于http的API来测试JMeter。不幸的是,API的某些端点期望带有请求体的http DELETE方法(我知道它的questionable API design to use DELETE with request body,但我无法更改该API并需要对其进行测试)。

如何从JMeter进行测试?似乎标准的HttpRequest采样器默默地忽略了我的身体有效负载而没有任何警告。 (当我在POSTMAN中尝试发送DELETE方法的请求主体时)

我确实找到了一个名为HTTP Raw Request的旧JMeter插件,它有点帮助,但仍然没有自动计算" Content-Length:"我的身体有效负载的http标头......所以我必须为每个测试用例手动完成 - 这对于动态生成的数据有效负载来说很痛苦。

所以我的问题仍然存在:如何使用JMeter的请求体测试HTTP DELETE?

以下是截图: enter image description here

NOTE1:从jMeter ver开始。 3.1(参见bugzilla #60358)为Http GET请求修复了能够在请求中发送正文...但是没有添加DELETE。

注意2:有关带正文的DELETE请求,请参阅bugzilla #61443

注3:我正在使用名为" Java"的客户端实现。

1 个答案:

答案 0 :(得分:3)

根据参考文档:

http请求采样器有2种实现方式。 非默认一个名为“Java”的问题是没有传递DELETE请求体。 幸运的是,名为“HttpClient4”的默认实现正确地按照JMeter数据输入屏幕传递DELETE操作的请求有效负载。 要更改http请求采样器的实现,您必须转到HTTP请求采样器的“高级”选项卡,然后选择客户端实现“HttpClient4”而不是“Java”。这是截图: enter image description here

之后执行时,它正确发送DELETE操作的请求有效负载。这是截图: enter image description here