You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Steve Kapinos <St...@tandberg.com> on 2008/10/09 00:12:50 UTC

inconsistent timing with JMeterContextService.getNumberOfThreads and thread startup

I have a test plan as follows with jmeter v2.3.2

ThreadGroup1
 - include controller
ThreadGroup2
 - include controller
ThreadGroup3
 - include controller
Monitoring Thread Group (loop forever)
 - UDV
 - UDV
 - While Controller =
${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
Threads()==1)}
    - Test Action - Stop current thread
 - Simple Controller
   - samplers

The first three include controllers are running individual tests with
lots of threads.  The Monitoring thread group is intended to run and
loop forever while the first three thread groups are running until they
finish.  When they finish, the Monitoring Thread will be the only thread
running and hence the While Controller will kick in and stop its thread,
and therefore the test will be finished.

I thought it was working perfectly, but I found in some of my runs of
the test, the while test seemed to be kicking off immediately, killing
the monitoring thread.

I use the same test with two different sets of inputs which scale how
many threads the included scripts use.  It was pretty consistent that
one set worked, while another did not.

The problem seems to be the monitoring thread group starting before the
threads from the included controller fire up.  Is there a consistent way
I can push this while controller check back?  If I put a timer in the
Monitoring Thread Group before the while controller, will that timer
execute before the while check is evaluated?

I don't have a log of the failure anymore, but below is what it looks
like when it works..   When it fails the 'jmeter.threads.JMeterThread:
Thread Monitoring Thread 7-1 started ' Appears in the log before the
lines like ' jmeter.threads.JMeterThread: Thread MPS Thread Group 2-1
started'

2008/10/08 23:39:55 INFO  - jmeter.JMeter: Running test (1223501995752) 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
1 threads for group MCU Calls. Ramp up = 1. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread:
jmeterthread.startearlier=true (see jmeter.properties) 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Running
PostProcessors in forward order 
2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
loadIncludedElements -- try to load included module:
mps-calllog-generator.jmx 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
3 threads for group MPS Thread Group. Ramp up = 10. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
Calls 1-1 started 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
Calls 1-1 is done 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Ending
thread MCU Calls 1-1 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
1 threads for group PTP Calls. Ramp up = 1. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
loadIncludedElements -- try to load included module:
ptp-calllog-generator.jmx 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
25 threads for group PTP Thread Group. Ramp up = 10. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
1 threads for group VCS Calls. Ramp up = 1. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
loadIncludedElements -- try to load included module:
vcs-calllog-generator.jmx 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
40 threads for group VCS Thread Group. Ramp up = 10. 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MPS
Thread Group 2-1 started 
2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
mps-list.csv 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
Calls 3-1 started 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
Calls 3-1 is done 
2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Ending
thread PTP Calls 3-1 
2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
Thread Group 4-1 started 
2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
codec-list.csv 
2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Starting
1 threads for group Monitoring Thread. Ramp up = 1. 
2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error
2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Continue
on error 
2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
Thread Group 6-1 started 
2008/10/08 23:39:56 INFO  - jmeter.services.FileServer: Stored:
VCS-list.csv 
2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
Calls 5-1 started 
2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
Calls 5-1 is done 
2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Ending
thread VCS Calls 5-1 
2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread
Monitoring Thread 7-1 started





Steve Kapinos
Solution Developer - R&D
TANDBERG

Phone:    +1 703 7094272
Video:    steve.kapinos@tandberg.com
E-mail:   steve.kapinos@tandberg.com

1860 Michael Faraday Dr
Reston, VA 20190, USA

www.tandberg.com


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


Re: inconsistent timing with JMeterContextService.getNumberOfThreads and thread startup

Posted by sebb <se...@gmail.com>.
On 09/10/2008, Steve Kapinos <St...@tandberg.com> wrote:
> I'm trying with a test action with a pause in the existing solution
>  now.. I'll see how reliable it is.  Does this variable delay in thread
>  startup surprise you at all?

No.

>  Or is it simply because the include
>  controller doesn't really wait at all for its test plan to load up the
>  main test plan just continues on?

No.

>  In your example..
>
>
>  Thread Group Monitor (loop=1)
>  + Test Action (pause)
>  + While Threads > 1
>  + + Simple Controller
>  + + + Samplers
>
>
> So suggesting to use while controller with condition
>
> ${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
>  Threads()>1)}

Yes.

>
> And letting the while controller loop through the samplers rather then
>  using the while controller to trigger the test action.  Correct?
>

Yes.

>  -Steve
>
>
>
>  -----Original Message-----
>  From: sebb [mailto:sebbaz@gmail.com]
>  Sent: Wednesday, October 08, 2008 6:47 PM
>  To: JMeter Users List
>  Subject: Re: inconsistent timing with
>  JMeterContextService.getNumberOfThreads and thread startup
>
>  On 08/10/2008, Steve Kapinos <St...@tandberg.com> wrote:
>  > I have a test plan as follows with jmeter v2.3.2
>  >
>  >  ThreadGroup1
>  >   - include controller
>  >  ThreadGroup2
>  >   - include controller
>  >  ThreadGroup3
>  >   - include controller
>  >  Monitoring Thread Group (loop forever)
>  >   - UDV
>  >   - UDV
>  >   - While Controller =
>  >
>  ${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
>  >  Threads()==1)}
>  >     - Test Action - Stop current thread
>  >   - Simple Controller
>  >    - samplers
>  >
>  >  The first three include controllers are running individual tests with
>  >  lots of threads.  The Monitoring thread group is intended to run and
>  >  loop forever while the first three thread groups are running until
>  they
>  >  finish.  When they finish, the Monitoring Thread will be the only
>  thread
>  >  running and hence the While Controller will kick in and stop its
>  thread,
>  >  and therefore the test will be finished.
>  >
>  >  I thought it was working perfectly, but I found in some of my runs of
>  >  the test, the while test seemed to be kicking off immediately,
>  killing
>  >  the monitoring thread.
>  >
>  >  I use the same test with two different sets of inputs which scale how
>  >  many threads the included scripts use.  It was pretty consistent that
>  >  one set worked, while another did not.
>  >
>  >  The problem seems to be the monitoring thread group starting before
>  the
>  >  threads from the included controller fire up.  Is there a consistent
>  way
>  >  I can push this while controller check back?  If I put a timer in the
>  >  Monitoring Thread Group before the while controller, will that timer
>  >  execute before the while check is evaluated?
>
>  No. Timers only apply to Samplers.
>
>  However, you can add a TestAction sampler before the While Loop.
>
>  It looks like the While Controller is being used as an If controller,
>  presumably so you can use BeanShell rather than Javascript.
>
>  It might be cleaner to do:
>
>  Thread Group Monitor (loop=1)
>  + Test Action (pause)
>  + While Threads > 1
>  + + Simple Controller
>  + + + Samplers
>
>  >  I don't have a log of the failure anymore, but below is what it looks
>  >  like when it works..   When it fails the
>  'jmeter.threads.JMeterThread:
>  >  Thread Monitoring Thread 7-1 started ' Appears in the log before the
>  >  lines like ' jmeter.threads.JMeterThread: Thread MPS Thread Group 2-1
>  >  started'
>  >
>  >  2008/10/08 23:39:55 INFO  - jmeter.JMeter: Running test
>  (1223501995752)
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  1 threads for group MCU Calls. Ramp up = 1.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread:
>  >  jmeterthread.startearlier=true (see jmeter.properties)
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Running
>  >  PostProcessors in forward order
>  >  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  >  loadIncludedElements -- try to load included module:
>  >  mps-calllog-generator.jmx
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  3 threads for group MPS Thread Group. Ramp up = 10.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  >  Calls 1-1 started
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  >  Calls 1-1 is done
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Ending
>  >  thread MCU Calls 1-1
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  1 threads for group PTP Calls. Ramp up = 1.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  >  loadIncludedElements -- try to load included module:
>  >  ptp-calllog-generator.jmx
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  25 threads for group PTP Thread Group. Ramp up = 10.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  1 threads for group VCS Calls. Ramp up = 1.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  >  loadIncludedElements -- try to load included module:
>  >  vcs-calllog-generator.jmx
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  40 threads for group VCS Thread Group. Ramp up = 10.
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MPS
>  >  Thread Group 2-1 started
>  >  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  >  mps-list.csv
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  >  Calls 3-1 started
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  >  Calls 3-1 is done
>  >  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
>  Ending
>  >  thread PTP Calls 3-1
>  >  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  >  Thread Group 4-1 started
>  >  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  >  codec-list.csv
>  >  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
>  Starting
>  >  1 threads for group Monitoring Thread. Ramp up = 1.
>  >  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
>  Continue
>  >  on error
>  >  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  >  Thread Group 6-1 started
>  >  2008/10/08 23:39:56 INFO  - jmeter.services.FileServer: Stored:
>  >  VCS-list.csv
>  >  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  >  Calls 5-1 started
>  >  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  >  Calls 5-1 is done
>  >  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
>  Ending
>  >  thread VCS Calls 5-1
>  >  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread
>  >  Monitoring Thread 7-1 started
>  >
>  >
>  >
>  >
>  >
>  >  Steve Kapinos
>  >  Solution Developer - R&D
>  >  TANDBERG
>  >
>  >  Phone:    +1 703 7094272
>  >  Video:    steve.kapinos@tandberg.com
>  >  E-mail:   steve.kapinos@tandberg.com
>  >
>  >  1860 Michael Faraday Dr
>  >  Reston, VA 20190, USA
>  >
>  >  www.tandberg.com
>  >
>  >
>  >  ---------------------------------------------------------------------
>  >  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
>
>

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


RE: inconsistent timing with JMeterContextService.getNumberOfThreads and thread startup

Posted by Steve Kapinos <St...@tandberg.com>.
I'm trying with a test action with a pause in the existing solution
now.. I'll see how reliable it is.  Does this variable delay in thread
startup surprise you at all?  Or is it simply because the include
controller doesn't really wait at all for its test plan to load up the
main test plan just continues on?

In your example..

Thread Group Monitor (loop=1)
+ Test Action (pause)
+ While Threads > 1
+ + Simple Controller
+ + + Samplers

So suggesting to use while controller with condition
${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
Threads()>1)}

And letting the while controller loop through the samplers rather then
using the while controller to trigger the test action.  Correct?

-Steve


-----Original Message-----
From: sebb [mailto:sebbaz@gmail.com] 
Sent: Wednesday, October 08, 2008 6:47 PM
To: JMeter Users List
Subject: Re: inconsistent timing with
JMeterContextService.getNumberOfThreads and thread startup

On 08/10/2008, Steve Kapinos <St...@tandberg.com> wrote:
> I have a test plan as follows with jmeter v2.3.2
>
>  ThreadGroup1
>   - include controller
>  ThreadGroup2
>   - include controller
>  ThreadGroup3
>   - include controller
>  Monitoring Thread Group (loop forever)
>   - UDV
>   - UDV
>   - While Controller =
>
${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
>  Threads()==1)}
>     - Test Action - Stop current thread
>   - Simple Controller
>    - samplers
>
>  The first three include controllers are running individual tests with
>  lots of threads.  The Monitoring thread group is intended to run and
>  loop forever while the first three thread groups are running until
they
>  finish.  When they finish, the Monitoring Thread will be the only
thread
>  running and hence the While Controller will kick in and stop its
thread,
>  and therefore the test will be finished.
>
>  I thought it was working perfectly, but I found in some of my runs of
>  the test, the while test seemed to be kicking off immediately,
killing
>  the monitoring thread.
>
>  I use the same test with two different sets of inputs which scale how
>  many threads the included scripts use.  It was pretty consistent that
>  one set worked, while another did not.
>
>  The problem seems to be the monitoring thread group starting before
the
>  threads from the included controller fire up.  Is there a consistent
way
>  I can push this while controller check back?  If I put a timer in the
>  Monitoring Thread Group before the while controller, will that timer
>  execute before the while check is evaluated?

No. Timers only apply to Samplers.

However, you can add a TestAction sampler before the While Loop.

It looks like the While Controller is being used as an If controller,
presumably so you can use BeanShell rather than Javascript.

It might be cleaner to do:

Thread Group Monitor (loop=1)
+ Test Action (pause)
+ While Threads > 1
+ + Simple Controller
+ + + Samplers

>  I don't have a log of the failure anymore, but below is what it looks
>  like when it works..   When it fails the
'jmeter.threads.JMeterThread:
>  Thread Monitoring Thread 7-1 started ' Appears in the log before the
>  lines like ' jmeter.threads.JMeterThread: Thread MPS Thread Group 2-1
>  started'
>
>  2008/10/08 23:39:55 INFO  - jmeter.JMeter: Running test
(1223501995752)
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  1 threads for group MCU Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread:
>  jmeterthread.startearlier=true (see jmeter.properties)
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Running
>  PostProcessors in forward order
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  mps-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  3 threads for group MPS Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  Calls 1-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  Calls 1-1 is done
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Ending
>  thread MCU Calls 1-1
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  1 threads for group PTP Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  ptp-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  25 threads for group PTP Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  1 threads for group VCS Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  vcs-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  40 threads for group VCS Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MPS
>  Thread Group 2-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  mps-list.csv
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Calls 3-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Calls 3-1 is done
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine:
Ending
>  thread PTP Calls 3-1
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Thread Group 4-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  codec-list.csv
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
Starting
>  1 threads for group Monitoring Thread. Ramp up = 1.
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
Continue
>  on error
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Thread Group 6-1 started
>  2008/10/08 23:39:56 INFO  - jmeter.services.FileServer: Stored:
>  VCS-list.csv
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Calls 5-1 started
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Calls 5-1 is done
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine:
Ending
>  thread VCS Calls 5-1
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread
>  Monitoring Thread 7-1 started
>
>
>
>
>
>  Steve Kapinos
>  Solution Developer - R&D
>  TANDBERG
>
>  Phone:    +1 703 7094272
>  Video:    steve.kapinos@tandberg.com
>  E-mail:   steve.kapinos@tandberg.com
>
>  1860 Michael Faraday Dr
>  Reston, VA 20190, USA
>
>  www.tandberg.com
>
>
>  ---------------------------------------------------------------------
>  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: inconsistent timing with JMeterContextService.getNumberOfThreads and thread startup

Posted by sebb <se...@gmail.com>.
On 08/10/2008, Steve Kapinos <St...@tandberg.com> wrote:
> I have a test plan as follows with jmeter v2.3.2
>
>  ThreadGroup1
>   - include controller
>  ThreadGroup2
>   - include controller
>  ThreadGroup3
>   - include controller
>  Monitoring Thread Group (loop forever)
>   - UDV
>   - UDV
>   - While Controller =
>  ${__BeanShell(org.apache.jmeter.threads.JMeterContextService.getNumberOf
>  Threads()==1)}
>     - Test Action - Stop current thread
>   - Simple Controller
>    - samplers
>
>  The first three include controllers are running individual tests with
>  lots of threads.  The Monitoring thread group is intended to run and
>  loop forever while the first three thread groups are running until they
>  finish.  When they finish, the Monitoring Thread will be the only thread
>  running and hence the While Controller will kick in and stop its thread,
>  and therefore the test will be finished.
>
>  I thought it was working perfectly, but I found in some of my runs of
>  the test, the while test seemed to be kicking off immediately, killing
>  the monitoring thread.
>
>  I use the same test with two different sets of inputs which scale how
>  many threads the included scripts use.  It was pretty consistent that
>  one set worked, while another did not.
>
>  The problem seems to be the monitoring thread group starting before the
>  threads from the included controller fire up.  Is there a consistent way
>  I can push this while controller check back?  If I put a timer in the
>  Monitoring Thread Group before the while controller, will that timer
>  execute before the while check is evaluated?

No. Timers only apply to Samplers.

However, you can add a TestAction sampler before the While Loop.

It looks like the While Controller is being used as an If controller,
presumably so you can use BeanShell rather than Javascript.

It might be cleaner to do:

Thread Group Monitor (loop=1)
+ Test Action (pause)
+ While Threads > 1
+ + Simple Controller
+ + + Samplers

>  I don't have a log of the failure anymore, but below is what it looks
>  like when it works..   When it fails the 'jmeter.threads.JMeterThread:
>  Thread Monitoring Thread 7-1 started ' Appears in the log before the
>  lines like ' jmeter.threads.JMeterThread: Thread MPS Thread Group 2-1
>  started'
>
>  2008/10/08 23:39:55 INFO  - jmeter.JMeter: Running test (1223501995752)
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  1 threads for group MCU Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread:
>  jmeterthread.startearlier=true (see jmeter.properties)
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Running
>  PostProcessors in forward order
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  mps-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  3 threads for group MPS Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  Calls 1-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MCU
>  Calls 1-1 is done
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Ending
>  thread MCU Calls 1-1
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  1 threads for group PTP Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  ptp-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  25 threads for group PTP Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  1 threads for group VCS Calls. Ramp up = 1.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.control.IncludeController:
>  loadIncludedElements -- try to load included module:
>  vcs-calllog-generator.jmx
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  40 threads for group VCS Thread Group. Ramp up = 10.
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread MPS
>  Thread Group 2-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  mps-list.csv
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Calls 3-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Calls 3-1 is done
>  2008/10/08 23:39:55 INFO  - jmeter.engine.StandardJMeterEngine: Ending
>  thread PTP Calls 3-1
>  2008/10/08 23:39:55 INFO  - jmeter.threads.JMeterThread: Thread PTP
>  Thread Group 4-1 started
>  2008/10/08 23:39:55 INFO  - jmeter.services.FileServer: Stored:
>  codec-list.csv
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Starting
>  1 threads for group Monitoring Thread. Ramp up = 1.
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Continue
>  on error
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Thread Group 6-1 started
>  2008/10/08 23:39:56 INFO  - jmeter.services.FileServer: Stored:
>  VCS-list.csv
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Calls 5-1 started
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread VCS
>  Calls 5-1 is done
>  2008/10/08 23:39:56 INFO  - jmeter.engine.StandardJMeterEngine: Ending
>  thread VCS Calls 5-1
>  2008/10/08 23:39:56 INFO  - jmeter.threads.JMeterThread: Thread
>  Monitoring Thread 7-1 started
>
>
>
>
>
>  Steve Kapinos
>  Solution Developer - R&D
>  TANDBERG
>
>  Phone:    +1 703 7094272
>  Video:    steve.kapinos@tandberg.com
>  E-mail:   steve.kapinos@tandberg.com
>
>  1860 Michael Faraday Dr
>  Reston, VA 20190, USA
>
>  www.tandberg.com
>
>
>  ---------------------------------------------------------------------
>  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