http - JMeter http 请求删除正文

标签 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 采样器在没有任何警告的情况下默默地忽略了我的 body 有效载荷。 (当我在 POSTMAN 中尝试它时,它会发送 DELETE 方法的请求正文)

我确实找到了一个名为 HTTP Raw Request 的旧 JMeter 插件这有点帮助,但仍然不会为我的 body 有效负载自动计算“Content-Length:”http header ......所以我必须为每个测试用例手动执行它 - 这对于动态生成的数据有效负载来说是一个痛苦。

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

截图如下: enter image description here

注意 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”。这是屏幕截图: enter image description here

之后,当执行它时,它会正确地发送用于删除操作的请求负载。这是屏幕截图: enter image description here

关于http - JMeter http 请求删除正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45744099/

相关文章:

http - 设置多个同名的 HTTP header ?

loops - Jmeter循环计数 'forever'不会永远运行

java - JSP : How to get the URL Address of the page that redirects to another page in java?

http - 将 HTTP 和游戏服务器流量分离到同一地址

apache - CORS GET 请求有数据长度问题

python - 如何让 nose 将案例输出记录到单独的文件中?

Azure Web App 的性能测试

javascript - Protractor 中的 AngularJS E2E 测试失败

jmeter - javax.net.ssl.sslpeerunverifiedexception :peernotauthenticated jmeter error

java - 在 jMeter 2.12 版的工作台 > 添加 > 非测试元素中找不到 HTTP 代理服务器选项