You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by max3163 <gi...@git.apache.org> on 2016/12/22 09:35:07 UTC

[GitHub] jmeter pull request #241: Support variable for all JMS messages (bytes, obje...

GitHub user max3163 opened a pull request:

    https://github.com/apache/jmeter/pull/241

    Support variable for all JMS messages (bytes, object, ...) and sources (file, folder)

    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](https://docs.oracle.com/javase/8/docs/api/index.html?java/nio/charset/StandardCharsets.html)).
    
    <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:
    * ResourceLocator: enables to locate a resource file and give a NIO Path or String one. Relying on pure URL causes problem with path containing some special characters such as space (%20). It solves an existing problem on current code base.
    * JMeterContextServiceHelper: it consits in a [JUnit rule](https://github.com/junit-team/junit4/wiki/Rules) implementation to manage thread-bound singletons of JMeterContext. See TextMessageRendererTest for an example usage.
    
    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, 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/max3163/jmeter POW-322

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/jmeter/pull/241.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #241
    
----
commit 36dd9f7ec959c69e06b7bf52f2ddb5866d822797
Author: Bruno Demion <mi...@apache.org>
Date:   2016-11-16T18:45:11Z

    Tag for pre-release
    
    git-svn-id: https://svn.apache.org/repos/asf/jmeter/tags/v3_1_RC4@1770033 13f79535-47bb-0310-9956-ffa450edef68

commit 0b5b61f85c494dedd43ac1648bec96c92a6af33e
Author: Bruno Demion <mi...@apache.org>
Date:   2016-11-19T22:49:23Z

    Vote succeeded, create the 3.1 tag
    
    git-svn-id: https://svn.apache.org/repos/asf/jmeter/tags/v3_1@1770529 13f79535-47bb-0310-9956-ffa450edef68

commit b2062f8defb5607b64d998c972f158a4d03e31c5
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-19T17:17:03Z

    POW-322 Adds encoding selection for JMS publishing

commit d77b5dc0ddfe4aab797fdad71937795248475e20
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-21T10:50:39Z

    POW-322 Adds variable support for file source with JMS publishing

commit 4322511111b83dee637a28bf36880b5ba1c09e12
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-21T16:36:29Z

    POW-322 Upgrades java version

commit 9a5a88d1af806726d01c78980e515f69246ccdad
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-22T08:22:52Z

    POW-322 Fixes resource lookup

commit 5c006fe9209b25b39cb10eed66b222d63e61b047
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-22T08:46:38Z

    POW-322 Uses HTTPS for checkstyle location

commit 610fc24e4d33fdf92235b936a611190bd8a648c0
Author: Logan Mauzaize (T524467) <lo...@airfrance.fr>
Date:   2016-12-22T08:50:32Z

    POW-322 Fixes checkstyle errors

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by loganmzz <gi...@git.apache.org>.
Github user loganmzz commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    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.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by max3163 <gi...@git.apache.org>.
Github user max3163 commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Protocol :
    
    Send 200000 messages share on 2 threads to a JMS topics (text format on a  local ActiveMQ broker )
    Send 200000 messages share on 2 threads to a JMS topics (binary format on a local ActiveMQ broker ) 
    
    1. JMeter 3.1 :
    
    - Throughput : 
    BINARY : 11 400 tps
    TEXT : 11 600 tps
    
    2. JMeter 3.2 with PR #241
    
    - Encodage ROW 
    Throughput : 
    BINARY : 12 700 tps
    TEXT : 11 500 tps
    
    - Encodage UTF-8 ( no variable in JMETER )
    Throughput : 
    BINARY : 11 700 tps
    TEXT : 9 650 tps
    
    - Encodage UTF-8 ( with variable set in JMeter )
    Throughput : 
    BINARY : 12 000 tps
    TEXT : 9 700 tps
    
    As you can see, other than one impact on the binary side when you activate the Encodage \u2013 and it\u2019s normal as the file is interpreted - the results are almost identical. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by max3163 <gi...@git.apache.org>.
Github user max3163 commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    @pmouawad 
    
    I use this patch in production for 3 month with big load and big data without any problem of performance. 
    This patch add a new behaviour only for file part, but the behaviour is the same than before for data put in the textfield. 
    If you put RAW encoding, JMeter don't try to parse the file in order to remplace variable, so you turned into the default old behaviour.
    For me, there is no objective risk to apply this patch. 
    
    Sorry if I did it to quickly....


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter pull request #241: Support variable for all JMS messages (bytes, obje...

Posted by max3163 <gi...@git.apache.org>.
Github user max3163 closed the pull request at:

    https://github.com/apache/jmeter/pull/241


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by FSchumacher <gi...@git.apache.org>.
Github user FSchumacher commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    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.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by max3163 <gi...@git.apache.org>.
Github user max3163 commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Closed with the 1783319 commit 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by max3163 <gi...@git.apache.org>.
Github user max3163 commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Did you have the opportunity to review theses commits ? 
    It's important change we want to share with you to use in production the stock version of JMeter rather than our own build.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by FSchumacher <gi...@git.apache.org>.
Github user FSchumacher commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Well, try a current one. It would be great if there is no conflict.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by loganmzz <gi...@git.apache.org>.
Github user loganmzz commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    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.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by pmouawad <gi...@git.apache.org>.
Github user pmouawad commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Hello,
    Would it be possible to bench this with more threads than 2 ?
    50 for example ?
    Would it be possible to wait for 3.2 release before merging this one ?
    Thanks


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Re: [GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by Maxime Chassagneux <ma...@gmail.com>.
Hi,

I thought we have already did it. I will look at this tomorrow and share
result with you.



2017-01-15 15:00 GMT+01:00 pmouawad <gi...@git.apache.org>:

> Github user pmouawad commented on the issue:
>
>     https://github.com/apache/jmeter/pull/241
>
>     Hello,
>     Before merging this one , I'd like to be sure it does not introduce
> performance degradation.
>
>     Did you have time to make a micro benchmark ?
>     Thank you
>
>
> ---
> If your project is set up for it, you can reply to this email and have your
> reply appear on GitHub as well. If your project does not have this feature
> enabled and wishes so, or if the feature is enabled but not working, please
> contact infrastructure at infrastructure@apache.org or file a JIRA ticket
> with INFRA.
> ---
>

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by pmouawad <gi...@git.apache.org>.
Github user pmouawad commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Hello,
    Before merging this one , I'd like to be sure it does not introduce performance degradation.
    
    Did you have time to make a micro benchmark ?
    Thank you


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by loganmzz <gi...@git.apache.org>.
Github user loganmzz commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    I have rebase my works on trunk: d29ac213d3971942c8d98c4ef7223fed97001cfc (Sonar : fix squid:UselessParenthesesCheck Remove those useless parentheses) and replaces the simple cache API by Caffeine


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] jmeter issue #241: Support variable for all JMS messages (bytes, object, ......

Posted by pmouawad <gi...@git.apache.org>.
Github user pmouawad commented on the issue:

    https://github.com/apache/jmeter/pull/241
  
    Hello @loganmzz ,
    Is this PR a duplicate of PR 239 ? 
    If so, could you close 239? 
    Did you check the performance impact of this feature ?
    
    Thanks a lot for your contribution.
    Regards


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---