On 21 April 2015 at 22:07, Glenn Caccia <[email protected]> wrote:
>
> Hey all,
> I often need to construct tests for a particular application service where I 
> need to test all the different API calls at a particular HPS for the server 
> and with the correct distribution of API calls.  For example, applicationA 
> supports calls for call1, call2 and call3.  I need to simulate 80 HPS for the 
> server between all three calls.  call1 is 50% of the traffic, call2 is 25% of 
> the traffic and call3 is 25% of the traffic.  In the past I have hard-coded 
> these distributions by using the throughput controller and setting an 
> appropriate percentage for each call.  The problem is that production 
> distributions can change over time as features change, requiring the tester 
> to calculate new percentages and update the tests.  Ultimately, I'd like our 
> JMeter scripts to have the ability to, at runtime, get the latest 
> distributions from production and use that in the test.  To enable this, I 
> need to be able to programmatically set the throughput percentages rather 
> than having it hard-coded.
> To this end, I thought to use properties.  I have a Setup ThreadGroup that 
> uses a groovy script to set properties that represent each sampler target 
> distribution.  The throughput controllers then reference their specific 
> distribution property.  For example, the groovy script will set a property 
> for "call1distribution" to "100".  The throughput controller that contains 
> the sampler for call1 would have its value set to 
> "${__property(call1distribution)}.  However, when I run the script, it 
> appears that property values added after the loading of JMeter do not get 
> picked up by subsequent threads.  That is, these property values are set in 
> the Setup ThreadGroup, but do not appear to be visible to the main 
> ThreadGroup that follows.  Am I doing something wrong or is this a limitation 
> of JMeter?  If a limitation of JMeter, is there some other way to set the 
> value of a throughput controller at runtime based on values calculated during 
> the Setup ThreadGroup?

Properties are global to the whole JVM.
So if the property is correctly set, it can be read anywhere else.
Try adding a Debug Sampler to show the values of the properties.

> Thanks,
> Glenn

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to