jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ptrd <...@git.apache.org>
Subject [GitHub] jmeter pull request #361: More hooks for testplan modifications
Date Tue, 19 Dec 2017 20:58:11 GMT
GitHub user ptrd opened a pull request:

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

    More hooks for testplan modifications

    ## Description
    In my JMeter websocket plugin (https://bitbucket.org/pjtr/jmeter-websocket-samplers) I
want to hide advanced options for first time users. One of my design goals for this plugin
was to make it very easy to use, so that first-time users are not overwhelmed with loads of
options they don't know how to use and this will only confuse them. Up till now, i think i
succeeded (but of course that's for others to judge ;-)).
    
    However, i'm now at the point that i need to add functionality that will only be used
by advanced users. To keep the UI simple and clear for others, these advanced options must
be explicitly enabled. Currently, this is done by setting a JMeter property. It works, but
what i would like is that users can simply enable this (and other) option(s) by adding a special
Config element in their test plan and enable/disable the options they want to use. This keeps
the settings (e.g. whether options are enabled or not) in the testplan, which will avoid surprises
when a testplan that relies on these
    features is being loaded in a JMeter instance that doesn't have the property set.
    
    I've been experimenting with this approach and i'm pretty happy with it.
    However, to make it work correctly, i need some extra hooks in JMeter.
    
    ## Changes
    A "removed" method is added to TestElement, so a test element can react on
    it being removed from the test plan. I need this for the functionality explained above,
because when the user removes the special Configuration element that enables certain options,
    these options must be disabled.
    
    A "TestPlanListener" is added, and its "testPlanCleared" method is called when the test
plan is clear.
    Similarly to change 1, when a testplan is closed and another one is loaded, i need a hook
to reset the state of the advanced options. Of course, when included in JMeter, the TestPlanListener
should probably be extended with some other methods to make it a consistent interface; for
now i just wanted to create a working proof-of-concept.
    
    ## Motivation and Context
    See above.
    
    ## How Has This Been Tested?
    I used the added features in (a branch of) my plugin, see https://bitbucket.org/pjtr/jmeter-websocket-samplers/commits/branch/configure-options-in-testplan
    
    ## Screenshots (if appropriate):
    n.a.
    
    ## Types of changes
    - New feature (non-breaking change which adds functionality)
    
    ## Checklist:
    <!--- Go over all the following points, and put an `x` in all the boxes that apply.
-->
    <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help!
-->
    - [x] My code follows the [code style][style-guide] of this project.
    - [ ] I have updated the documentation accordingly.
    I'm happy to add docs or adapt the source according to the projects style or requirements,
just let me know.
    
    [style-guide]: https://wiki.apache.org/jmeter/CodeStyleGuidelines


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

    $ git pull https://github.com/ptrd/jmeter more-hooks-for-testplan-modifications

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

    https://github.com/apache/jmeter/pull/361.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 #361
    
----
commit a968db8bb63d16d6ea176ed00c074668958b7544
Author: Peter Doornbosch <peter.doornbosch@luminis.eu>
Date:   2017-12-17T17:44:25Z

    added a “removed” callback so a TestElement can react on the fact it is removed from
a test plan

commit 50e326ff824e231961308eed5185aeaf2d894f60
Author: Peter Doornbosch <peter.doornbosch@luminis.eu>
Date:   2017-12-17T18:09:43Z

    added a TestPlanListener, so JMeter components and plugins can react on a new test plan
being created or loaded

----


---

Mime
View raw message