jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Parks" <>
Subject RE: Question about ThrouputController
Date Wed, 12 Oct 2011 19:43:24 GMT
This is as expected in this scenario, I was using it with an infinite loop,
so in the end the percentages are roughly correct (but still randomly
distributed, which accounts for the error you are noting). But note how the
logic works here, each iteration it will pick one controller, and that
controller may or may not run in that iteration (depending on its percentage
probability that it will run). This will randomly distribute load.

If you want to control executions precisely and not just distribute load in
percentages then we need to consider another approach. And now I notice a
few details of your original email that I didn't take into account.

Here are a few other ideas you can play with:

Random Controller
  * Module Controller A [20%]
  * Module Controller A [20%]
  * Module Controller B [20%]
  * Module Controller C [20%]
  * Module Controller C [20%]

In this scenario A & C will run 40% of the time and B will run 20% of the
time, but one of them is always selected by the Random Controller. You can
use the module controller to allow you to define A, B, and C elsewhere and
duplicate their use in this sense.

Another idea is the If Controller - I haven't used it so I'm just going off
the top of my head here, but I would experiment with creating a random
variable (0-1.0) using the [Random Variable Configuration Element] to
determine which IF controller to run, and each IF controller only runs if
the random variable defined at the beginning of the loop is say: (0-0.3 =
30%, A), (0.3-0.4 = 10%, B), etc. This would guarantee 1 and only 1 of the
controllers run in a probabilistic pattern.

I'll bet you could come up with a couple more ways of tackling it if you
really tried, but hopefully these give you enough ideas to get by.

-----Original Message-----
From: Philippe Bossu [] 
Sent: Wednesday, October 12, 2011 11:53 AM
To: JMeter Users List
Subject: Re: Question about ThrouputController

Thanks for this I tried it but I doesn't work .
I set 1 threads running 50 LOOP Count => I get 24 executions

That's not what I want, I want 50 executions with the repartition, because
in this case If I have a sampler waiting for RandomController run result,
it will fail since it may not execute.
is it something possible ?

By the  way, percentages are not well respected.
7 / 24 => 30 % => I get 7 executions => OK
4 / 24 => 10% => I get 4 executions => KO
8/ 24 => I get 8 executions => 33% KO
5 / 24 => I get 5 executions => 20% OK


On Wed, Oct 12, 2011 at 7:31 PM, David Parks <> wrote:

> I did this as follows:
> * Thread group (define how many requests should be going through at one
> time)
>  * Random Controller (pick any of the sub controllers at random each
> iteration)
>    * Throughput Controller A [10%, By Percent]
>    * Throughput Controller B [40%, By Percent]
>    * Throughput Controller C [30%, By Percent]
>    * Throughput Controller D [20%, By Percent]
> This generates randomly distributed load over Controllers A-D according to
> the percentages defined.
> I also threw in a timer at the Random Controller level to limit the
> requests
> to once every X seconds, this way I could define the number of threads as
> representative of an real-world active user.
> Hope that gives some food for thought.
> -----Original Message-----
> From: Philippe Bossu []
> Sent: Wednesday, October 12, 2011 10:13 AM
> To:
> Subject: Question about ThrouputController
> Hello,
> First thank's for your help and great JMeter product.
> I have the following requirement.
> I would like to execute 4 different samples at the following frequence:
>    - 10% for A
>   - 40% for B
>   - 30% for C
>   - 20% for D
> A,B,C and D do search on different criterions.
> At least one of them must be executed because next sampler will use the
> search result.
> I tried to use ThroughputCOntroller but when I ran it once, none of the 4
> is
> executed.
> Random Controller does not do the job.
> InterleaveController as parent of TPC may be an option but I don't
> understand how to use it with others
> SwitchController might also be an option based on a question sebb answered
> to on the mailing list but how to randomize ?
> Thank you for your help.
> Regards
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message