Re: add hooks to JMeter for websocket plugin

2017-12-21 Thread Peter Doornbosch
Thanks Philippe, great.
Looks good so far.
If i'd have any feedback i'll let you know.
Regards
Peter


2017-12-20 10:49 GMT+01:00 Philippe Mouawad :
> Hello Peter,
> Thanks for your ideas and PR which has been merged with slight
> modifications.
>
> Tests and feedback very welcome.
> Regards
> Philippe
>
> On Sun, Dec 17, 2017 at 8:48 PM, Peter Doornbosch <
> peter.doornbo...@gmail.com> wrote:
>
>> Hi,
>>
>> 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.
>>
>> The proposed changes explained below, are committed to my JMeter fork at
>> https://github.com/ptrd/jmeter/commits/more-hooks-for-
>> testplan-modifications
>> .
>>
>> Change 1
>> See
>> https://github.com/ptrd/jmeter/commit/a968db8bb63d16d6ea176ed00c0746
>> 68958b7544
>> 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.
>>
>> Change 2
>> See
>> https://github.com/ptrd/jmeter/commit/50e326ff824e231961308eed5185ae
>> af2d894f60
>> 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.
>>
>> If you're interested in how these additions are used in the plugin, please
>> see this branch:
>> https://bitbucket.org/pjtr/jmeter-websocket-samplers/
>> commits/branch/configure-options-in-testplan
>> .
>>
>> Actually, i need one more feature, namely that a config element can be
>> declared as "singleton" so it can't be added multiple times, but i haven't
>> developed code for that yet - will follow later.
>>
>> I hope you are willing to add these hooks to JMeter, as, IMHO, these are
>> generic hooks that can be useful for others and other use cases as well.
>> For example, it has always frustrated me that the SSL keystore cannot be
>> configured in a testplan; which such additions as proposed here, i think
>> that would become possible too.
>> Of course, if you have any thoughts about how the proposed changes can be
>> improved, i'm happy to discuss it with you.
>>
>> Kind regards,
>> Peter Doornbosch
>>
>
>
>
> --
> Cordialement.
> Philippe Mouawad.


Re: add hooks to JMeter for websocket plugin

2017-12-20 Thread Philippe Mouawad
Hello Peter,
Thanks for your ideas and PR which has been merged with slight
modifications.

Tests and feedback very welcome.
Regards
Philippe

On Sun, Dec 17, 2017 at 8:48 PM, Peter Doornbosch <
peter.doornbo...@gmail.com> wrote:

> Hi,
>
> 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.
>
> The proposed changes explained below, are committed to my JMeter fork at
> https://github.com/ptrd/jmeter/commits/more-hooks-for-
> testplan-modifications
> .
>
> Change 1
> See
> https://github.com/ptrd/jmeter/commit/a968db8bb63d16d6ea176ed00c0746
> 68958b7544
> 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.
>
> Change 2
> See
> https://github.com/ptrd/jmeter/commit/50e326ff824e231961308eed5185ae
> af2d894f60
> 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.
>
> If you're interested in how these additions are used in the plugin, please
> see this branch:
> https://bitbucket.org/pjtr/jmeter-websocket-samplers/
> commits/branch/configure-options-in-testplan
> .
>
> Actually, i need one more feature, namely that a config element can be
> declared as "singleton" so it can't be added multiple times, but i haven't
> developed code for that yet - will follow later.
>
> I hope you are willing to add these hooks to JMeter, as, IMHO, these are
> generic hooks that can be useful for others and other use cases as well.
> For example, it has always frustrated me that the SSL keystore cannot be
> configured in a testplan; which such additions as proposed here, i think
> that would become possible too.
> Of course, if you have any thoughts about how the proposed changes can be
> improved, i'm happy to discuss it with you.
>
> Kind regards,
> Peter Doornbosch
>



-- 
Cordialement.
Philippe Mouawad.