Am 07.05.2018 um 21:32 schrieb Philippe Mouawad:
On Mon, May 7, 2018 at 8:51 PM, Felix Schumacher <
[email protected]> wrote:
Am 07.05.2018 um 18:59 schrieb Vladimir Sitnikov:
Antonio>Do you have an idea of the performance impact?
I'm afraid, it is inevitable. One of the further enhancements is might be
sending pre-compressed *.gz files
Option 1 seems better for me
It looks so. As far as I know, request body compression is not specified
in
the standard, so using JMeter-specific "header" to trigger the compression
might be the right thing to do.
For instance:
X-JMeter-Content-Compression: gzip
Later it could be improved to:
X-JMeter-Content-Compression: gzip; compression_level=1 vs
X-JMeter-Content-Compression: gzip; compression_level=9
Is there a chance that compression is different per request ? Can't it be
a global settings ?
Although I agree with proposition benefits, I don't find it very intuitive
for users.
If it's automatic:
- New users or newbies don't have anything to do, it works OOTB
That is always a plus.
- Users who have implemented the compression will indeed be impacted,
but they are more advanced and we can suppose they'll read release notes
and will rapidly find the issue no ?
I dare say, that this is not always (mostly not) the case and it is not
clear, whether the original advanced users are still the ones that run
(and debug) the tests.
On the contrary, If users need to add those headers:
- It looks to me not very intuitive
That is right, but it is safe.
- it means we modify requests for JMeter only behaviour, it is correct ?
Or shall we also remove headers once we compress ? which means more
complexity in code
I think it would be best to remove the custom header after the part is
compressed.
Anyway for all solutions we need to also modify Recorder to uncompress the
request body as it is currently compressed (binary and unreadable).
If the body is compressed and the header stays intact, there is no need
to compress it and no need for a custom header, if you want to send the
compressed body, only.
If you want to display the content, it would probably better to
uncompress it, but that would only be useful for text like content,
wouldn't it?
All in all, a GUI change looks like good alternative to these problems.
It could be intuitive, it can be selectively enabled and it is
compatible with the old behaviour, if defaults are set correctly.
Regards,
Felix
If we use just `Content-Encoding` to trigger the behavior, then it would
be
hard to evolve.
+1
If we use Content-Encoding, we could break other scripts, that have
already compressed their payload.
I agree, but maybe a property to disable automatic compression is a
solution.
That means "body compression" might deserve its own set of UI checkboxes,
however it looks like the case is rare (neither HTTP/1 nor HTTP2 specify
body compression), so we might be fine to keep that behind "trigger
header"
to avoid UI clutter.
There are major ERP like Oracle that use it for example.
And I have seen the question on Stackoverflow a bunch of times. So I think
it is a real requirement.
Right, nothing stops us from adding the ui or preprocessor or other
mechanism after we introduce the header trigger.
Regards,
Felix
Vladimir