New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support variable for all JMS messages (bytes, object, ...) and sources (file, folder) #241
Conversation
Thanks for your contribution. Could you resubmit your PR based on current trunk? It is really hard to see your changes otherwise. On the addition of a cache: we have added caffeine. You might want to have a look at it for your caching needs. |
Yes I can give it a try. However, can you suggest a stable commit ? Or I can just use anyone ? PS : I'm co-author of the PR. |
Well, try a current one. It would be great if there is no conflict. |
Hello @loganmzz , Thanks a lot for your contribution. |
Yes, it finally replaces #239. I have first supposed both will be merged, but finally rewritten to improve clean code with separation of concerns. Regarding performance, "raw" mode may have few overhead. Variable support should act exactly as if text area was used. I will try to make some check with microbenchmarking. |
I have rebase my works on trunk: d29ac21 (Sonar : fix squid:UselessParenthesesCheck Remove those useless parentheses) and replaces the simple cache API by Caffeine |
Hello, Did you have time to make a micro benchmark ? |
Protocol : Send 200000 messages share on 2 threads to a JMS topics (text format on a local ActiveMQ broker )
As you can see, other than one impact on the binary side when you activate the Encodage – and it’s normal as the file is interpreted - the results are almost identical. |
Did you have the opportunity to review theses commits ? |
Hello, |
Closed with the 1783319 commit |
I use this patch in production for 3 month with big load and big data without any problem of performance. Sorry if I did it to quickly.... |
Source code is based on Java 8 and unit tests has been added. Message format processing has been moved to a dedicated package, same for cache support.
An encoding field has been added to UI. It is by default filled with two special values (
<RAW>
,<DEFAULT>
and standard charsets).<RAW>
acts exactly as current version. No variable support and load files with default system charset.<DEFAULT>
mode applies default system one, except for XML which relies on XML prolog. In other cases, the specified encoding is use whatever it is valid or not.Cache system use a single field in PublisherSampler, so explicit type of cached content is not known. It may be improved (replaced ?) by using Guava instead. Cached content isn't consistent for a message type (bytes, object, ...) but also depends if raw mode is used or not. For all non-raw mode, text is always cached to permit variable processing for each sampler execution.
Two new components were added to JMeter test API:
Special notes: in order to check encoding management, test resources encoding must be preserved. By default, all files are in UTF-8 ; except for: cp1252.txt, object_cp1252.txt, object_prolog_cp1252.xml,