|Summary:||HTTP PUT does not honor request parameters|
|Product:||JMeter||Reporter:||Greg Smith <gregsmit>|
|Component:||HTTP||Assignee:||JMeter issues mailing list <issues>|
Tets plan with PUT requests using the two HTTP samplers
Put request with body
Http Sampler without expected body
Description Greg Smith 2007-10-12 07:21:27 UTC
When using the HTTP PUT method on an HTTP Sampler, the request parameters are not honored. If request parameters are specified, they are ignored and not placed in the request. The behavior of PUT should be similar to POST -- if request parameters are specified, they should be included in the body of the request. With new REST based applications, the use of the other HTTP verbs are much more common, with PUT being a standard way to update data within REST a rest app. Allowing PUT to work equivalent to POST (with request parameters and content type) should be sufficient.
Comment 1 Alf Hogemark 2007-10-14 06:03:09 UTC
I believe this is fixed in SVN changelist 584535, so you can do some testing. But I will not mark this bug as fixed before I have added some unit tests for this case.
Comment 2 Greg Smith 2007-10-15 08:09:28 UTC
Hi Alf, I extracted the latest (SVN 584775) and I am still having the problem with the latest version. To be more precise about my use case: I have REST style app that uses JSON and HTTP verbs for all client interaction. When I tried to use HTTP PUT, with Content Encoding of "application/json", Method of "PUT", and added a request parameter with my JSON data (Value = empty, Encode = not checked, Include Equals = not checked), I got the following as the request: PUT /resources/employees/user1 HTTP/1.1 Connection: keep-alive X-lori-time-1: 1192051198765 Accept-Encoding: gzip,deflate Referer: http://localhost:8080/ Cache-Control: no-cache Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Pragma: no-cache User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:22.214.171.124) Gecko/20070914 Firefox/126.96.36.199 Keep-Alive: 300 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Host: localhost:8080 Accept-Language: en-us,en;q=0.5 Content-Type: application/json With no body. (no content length, either) The original sampler item was created through the HTTP Proxy Server. (which is why it has all of the above headers) By switching the same request to method = "POST", the JSON content from the request parameter is available in the body. I am happy to do any additional testing or help with debugging. Thanks
Comment 3 Alf Hogemark 2007-10-15 12:29:00 UTC
(In reply to comment #2) If you could attach the test plan (remove any usernames / passwords), that would be great. Then I could use it for testing, just by changing the sampler slightly, to point it to the "HTTP Mirror Server" of JMeter. I think I'll manage to have a look at it tomorrow evening.
Comment 4 Alf Hogemark 2007-10-15 13:00:58 UTC
Created attachment 20985 [details] Tets plan with PUT requests using the two HTTP samplers I managed to do some testing today. Here it the test plan I use for testing, against the HTTP Mirror server.
Comment 5 Alf Hogemark 2007-10-15 13:05:55 UTC
I think I have solved the problem now, you should try the SVN changelist 584882. If you want to test that, it would be helpful. I'll try to add unit tests for the code tomorrow, so that we can be more certain that the code is correct.
Comment 6 Greg Smith 2007-10-15 13:25:25 UTC
Hi Alf, I rebuilt with the latest, and my Test Plan with a PUT works now. That seemed to do it Thanks much, Greg
Comment 7 Alf Hogemark 2007-10-16 11:17:36 UTC
Fixed in SVN changelist 585212.
Comment 8 Artem Fedorov 2018-03-21 15:03:17 UTC
Created attachment 35796 [details] Put request with body
Comment 9 Artem Fedorov 2018-03-21 15:04:06 UTC
Created attachment 35797 [details] Http Sampler without expected body
Comment 10 Philippe Mouawad 2018-04-02 12:20:25 UTC
*** Bug 60782 has been marked as a duplicate of this bug. ***