You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Philippe Bossu <pb...@gmail.com> on 2011/10/12 19:13:01 UTC

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

Re: Question about ThrouputController

Posted by Philippe Bossu <pb...@gmail.com>.
Thanks, I followed it and it worked for me.

Regards


On Wed, Oct 12, 2011 at 11:43 PM, Philippe Mouawad <
p.mouawad@ubik-ingenierie.com> wrote:

> Hello,
> We have a tutorial on this approach, you can find it here:
>
>   - JMeter Switch Controller or How to Run a sampler with a certain
>   Percentage<
> http://www.ubik-ingenierie.com/ubikwiki/index.php?title=JMeter_Switch_Controller_or_How_to_Run_a_sampler_with_a_certain_Percentage
> >
>
>
> Regards
> Philippe
>
> On Wed, Oct 12, 2011 at 10:32 PM, Philippe Bossu <pb...@gmail.com> wrote:
>
> > Hello,
> > Thank you very much for all your responses, I will try it.
> >
> >
> > Regards
> > Philippe
> >
> > On Wed, Oct 12, 2011 at 10:22 PM, sebb <se...@gmail.com> wrote:
> >
> > > On 12 October 2011 20:43, David Parks <da...@yahoo.com> wrote:
> > > > 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.
> > >
> > > Or generate a number in the range 0-9, and use the switch controller
> > > with 10 child samples in the appropriate percentages.
> > >
> > > If you convert the random number 0-9 into 0-3 in the appropriate
> > > percentages, you can use just 4 samples.
> > >
> > > This can be done using a BSF/JSR223/BeanShell Pre-Processor to create
> > > a variable in the appropriate range.
> > >
> > > Pseudo-code:
> > > r=random[0-9]
> > > n={0,1,1,1,1,2,2,2,3,3}[r] // index the array
> > >
> > > Switch Controller ${n}
> > >
> > > Or you can create a CSV file with a suitable random mix of numbers and
> > > use that to define the Switch variable
> > >
> > > > 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 [mailto:pbossu@gmail.com]
> > > > Sent: Wednesday, October 12, 2011 11:53 AM
> > > > To: JMeter Users List
> > > > Subject: Re: Question about ThrouputController
> > > >
> > > > Hello,
> > > > 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
> > > >
> > > >
> > > > Regards
> > > > Philippe
> > > >
> > > >
> > > > On Wed, Oct 12, 2011 at 7:31 PM, David Parks <davidparks21@yahoo.com
> >
> > > 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 [mailto:pbossu@gmail.com]
> > > >> Sent: Wednesday, October 12, 2011 10:13 AM
> > > >> To: jmeter-user@jakarta.apache.org
> > > >> 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: jmeter-user-unsubscribe@jakarta.apache.org
> > > >> For additional commands, e-mail:
> jmeter-user-help@jakarta.apache.org
> > > >>
> > > >>
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> > > > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> > >
> > >
> >
>
>
>
> --
> Cordialement.
> Philippe Mouawad.
> Ubik-Ingénierie
>

Re: Question about ThrouputController

Posted by Philippe Mouawad <p....@ubik-ingenierie.com>.
Hello,
We have a tutorial on this approach, you can find it here:

   - JMeter Switch Controller or How to Run a sampler with a certain
   Percentage<http://www.ubik-ingenierie.com/ubikwiki/index.php?title=JMeter_Switch_Controller_or_How_to_Run_a_sampler_with_a_certain_Percentage>


Regards
Philippe

On Wed, Oct 12, 2011 at 10:32 PM, Philippe Bossu <pb...@gmail.com> wrote:

> Hello,
> Thank you very much for all your responses, I will try it.
>
>
> Regards
> Philippe
>
> On Wed, Oct 12, 2011 at 10:22 PM, sebb <se...@gmail.com> wrote:
>
> > On 12 October 2011 20:43, David Parks <da...@yahoo.com> wrote:
> > > 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.
> >
> > Or generate a number in the range 0-9, and use the switch controller
> > with 10 child samples in the appropriate percentages.
> >
> > If you convert the random number 0-9 into 0-3 in the appropriate
> > percentages, you can use just 4 samples.
> >
> > This can be done using a BSF/JSR223/BeanShell Pre-Processor to create
> > a variable in the appropriate range.
> >
> > Pseudo-code:
> > r=random[0-9]
> > n={0,1,1,1,1,2,2,2,3,3}[r] // index the array
> >
> > Switch Controller ${n}
> >
> > Or you can create a CSV file with a suitable random mix of numbers and
> > use that to define the Switch variable
> >
> > > 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 [mailto:pbossu@gmail.com]
> > > Sent: Wednesday, October 12, 2011 11:53 AM
> > > To: JMeter Users List
> > > Subject: Re: Question about ThrouputController
> > >
> > > Hello,
> > > 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
> > >
> > >
> > > Regards
> > > Philippe
> > >
> > >
> > > On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com>
> > 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 [mailto:pbossu@gmail.com]
> > >> Sent: Wednesday, October 12, 2011 10:13 AM
> > >> To: jmeter-user@jakarta.apache.org
> > >> 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: jmeter-user-unsubscribe@jakarta.apache.org
> > >> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> > >>
> > >>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> >
> >
>



-- 
Cordialement.
Philippe Mouawad.
Ubik-Ingénierie

Re: Question about ThrouputController

Posted by Philippe Bossu <pb...@gmail.com>.
Hello,
Thank you very much for all your responses, I will try it.


Regards
Philippe

On Wed, Oct 12, 2011 at 10:22 PM, sebb <se...@gmail.com> wrote:

> On 12 October 2011 20:43, David Parks <da...@yahoo.com> wrote:
> > 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.
>
> Or generate a number in the range 0-9, and use the switch controller
> with 10 child samples in the appropriate percentages.
>
> If you convert the random number 0-9 into 0-3 in the appropriate
> percentages, you can use just 4 samples.
>
> This can be done using a BSF/JSR223/BeanShell Pre-Processor to create
> a variable in the appropriate range.
>
> Pseudo-code:
> r=random[0-9]
> n={0,1,1,1,1,2,2,2,3,3}[r] // index the array
>
> Switch Controller ${n}
>
> Or you can create a CSV file with a suitable random mix of numbers and
> use that to define the Switch variable
>
> > 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 [mailto:pbossu@gmail.com]
> > Sent: Wednesday, October 12, 2011 11:53 AM
> > To: JMeter Users List
> > Subject: Re: Question about ThrouputController
> >
> > Hello,
> > 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
> >
> >
> > Regards
> > Philippe
> >
> >
> > On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com>
> 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 [mailto:pbossu@gmail.com]
> >> Sent: Wednesday, October 12, 2011 10:13 AM
> >> To: jmeter-user@jakarta.apache.org
> >> 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: jmeter-user-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

Re: Question about ThrouputController

Posted by sebb <se...@gmail.com>.
On 12 October 2011 20:43, David Parks <da...@yahoo.com> wrote:
> 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.

Or generate a number in the range 0-9, and use the switch controller
with 10 child samples in the appropriate percentages.

If you convert the random number 0-9 into 0-3 in the appropriate
percentages, you can use just 4 samples.

This can be done using a BSF/JSR223/BeanShell Pre-Processor to create
a variable in the appropriate range.

Pseudo-code:
r=random[0-9]
n={0,1,1,1,1,2,2,2,3,3}[r] // index the array

Switch Controller ${n}

Or you can create a CSV file with a suitable random mix of numbers and
use that to define the Switch variable

> 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 [mailto:pbossu@gmail.com]
> Sent: Wednesday, October 12, 2011 11:53 AM
> To: JMeter Users List
> Subject: Re: Question about ThrouputController
>
> Hello,
> 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
>
>
> Regards
> Philippe
>
>
> On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com> 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 [mailto:pbossu@gmail.com]
>> Sent: Wednesday, October 12, 2011 10:13 AM
>> To: jmeter-user@jakarta.apache.org
>> 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: jmeter-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Question about ThrouputController

Posted by David Parks <da...@yahoo.com>.
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 [mailto:pbossu@gmail.com] 
Sent: Wednesday, October 12, 2011 11:53 AM
To: JMeter Users List
Subject: Re: Question about ThrouputController

Hello,
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


Regards
Philippe


On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com> 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 [mailto:pbossu@gmail.com]
> Sent: Wednesday, October 12, 2011 10:13 AM
> To: jmeter-user@jakarta.apache.org
> 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: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Question about ThrouputController

Posted by David Parks <da...@yahoo.com>.
Incidentally the "Random Order" controller runs *all* sub components, just
in a random order, but the "Random" controller just picks one of the sub
elements, make sure you're not mixing up the two as the difference is quite
important in your case.


-----Original Message-----
From: Philippe Bossu [mailto:pbossu@gmail.com] 
Sent: Wednesday, October 12, 2011 12:06 PM
To: JMeter Users List
Subject: Re: Question about ThrouputController

Unfortunately it is not either doing the job since sometimes 2 samplers
inside Random Order Controller are ran and sometimes 1.



On Wed, Oct 12, 2011 at 9:00 PM, Philippe Bossu <pb...@gmail.com> wrote:

> Random Order Controller seems to do the work.
> But I would like some confirmation .
>
> Thanks.
>
>
> On Wed, Oct 12, 2011 at 8:53 PM, Philippe Bossu <pb...@gmail.com> wrote:
>
>> Hello,
>> 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
>>
>>
>> Regards
>> Philippe
>>
>>
>> On Wed, Oct 12, 2011 at 7:31 PM, David Parks
<da...@yahoo.com>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 [mailto:pbossu@gmail.com]
>>> Sent: Wednesday, October 12, 2011 10:13 AM
>>> To: jmeter-user@jakarta.apache.org
>>> 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: jmeter-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>>
>>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Question about ThrouputController

Posted by Philippe Bossu <pb...@gmail.com>.
Unfortunately it is not either doing the job since sometimes 2 samplers
inside Random Order Controller are ran and sometimes 1.



On Wed, Oct 12, 2011 at 9:00 PM, Philippe Bossu <pb...@gmail.com> wrote:

> Random Order Controller seems to do the work.
> But I would like some confirmation .
>
> Thanks.
>
>
> On Wed, Oct 12, 2011 at 8:53 PM, Philippe Bossu <pb...@gmail.com> wrote:
>
>> Hello,
>> 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
>>
>>
>> Regards
>> Philippe
>>
>>
>> On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com>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 [mailto:pbossu@gmail.com]
>>> Sent: Wednesday, October 12, 2011 10:13 AM
>>> To: jmeter-user@jakarta.apache.org
>>> 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: jmeter-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>>
>>>
>>
>

Re: Question about ThrouputController

Posted by Philippe Bossu <pb...@gmail.com>.
Random Order Controller seems to do the work.
But I would like some confirmation .

Thanks.

On Wed, Oct 12, 2011 at 8:53 PM, Philippe Bossu <pb...@gmail.com> wrote:

> Hello,
> 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
>
>
> Regards
> Philippe
>
>
> On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com>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 [mailto:pbossu@gmail.com]
>> Sent: Wednesday, October 12, 2011 10:13 AM
>> To: jmeter-user@jakarta.apache.org
>> 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: jmeter-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>
>>
>

Re: Question about ThrouputController

Posted by Philippe Bossu <pb...@gmail.com>.
Hello,
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


Regards
Philippe


On Wed, Oct 12, 2011 at 7:31 PM, David Parks <da...@yahoo.com> 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 [mailto:pbossu@gmail.com]
> Sent: Wednesday, October 12, 2011 10:13 AM
> To: jmeter-user@jakarta.apache.org
> 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: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

RE: Question about ThrouputController

Posted by David Parks <da...@yahoo.com>.
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 [mailto:pbossu@gmail.com] 
Sent: Wednesday, October 12, 2011 10:13 AM
To: jmeter-user@jakarta.apache.org
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: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org