I have the following arrangement (BeanShell samplers added solely for
debugging purposes):

 

Test Plan

...

- Test Fragment XYZ

-- CSV Data

...

-- If Controller ( condition: "${Fields_matchNr}"!="0" )

--- BeanShell Sampler #1

--- Loop Controller ( count: ${Fields_matchNr} )

---- BeanShell Sampler #2

---- Counter ( start: 1, max: ${Fields_matchNr} )

---- BeanShell Sampler #3

---- HTTP Request

---- BeanShell Sampler #4

--- BeanShell Sampler #5

...

- Thread Group

- ModuleController ( -> Test Fragment XYZ )

 

 

User data is drawn from the CSV file.  The run-time variable
Fields_matchNr , extracted earlier, has a value of 1 for the first user,
and 2 for the second user (it will have a value between 1 and 4 for other
users, but is not known until run-time).

 

 

I'm perplexed by my observation of differing behaviour of the loop
controller in two slightly different executions of the test-plan.

 

 

Concurrent execution:  if I initially specify 2 threads with 1 iteration,
the following expected outcome is observed:

 

2015/05/13 14:46:55 INFO  - jmeter.engine.StandardJMeterEngine: Running
the test! 

...

2015/05/13 14:46:55 INFO  - jmeter.gui.util.JMeterMenuBar:
setRunning(true,*local*) 

2015/05/13 14:46:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting
ThreadGroup: 1 : MailNew 

2015/05/13 14:46:55 INFO  - jmeter.engine.StandardJMeterEngine: Starting 2
threads for group MailNew. 

...

2015/05/13 14:46:56 INFO  - jmeter.threads.JMeterThread: Thread started:
MailNew 1-1 

2015/05/13 14:46:56 INFO  - jmeter.services.FileServer: Stored:
./workload/MailNewUsers.dat Alias: ./workload/MailNewUsers.dat@1116508025 

...

2015/05/13 14:47:05 INFO  - jmeter.threads.JMeterThread: Thread started:
MailNew 1-2 

2015/05/13 14:47:07 WARN  - jmeter.util.BeanShellTestElement: Debug #1 :
Fields_matchNr = 1 

2015/05/13 14:47:07 WARN  - jmeter.util.BeanShellTestElement: Debug #2 :
Fields_matchNr = 1 

2015/05/13 14:47:07 WARN  - jmeter.util.BeanShellTestElement: Debug #3 :
Fields_matchNr = 1 

2015/05/13 14:47:08 WARN  - jmeter.util.BeanShellTestElement: Debug #4 :
Fields_matchNr = 1 

2015/05/13 14:47:09 WARN  - jmeter.util.BeanShellTestElement: Debug #5 :
Fields_matchNr = 1 

2015/05/13 14:47:13 INFO  - jmeter.threads.JMeterThread: Thread is done:
MailNew 1-1 

2015/05/13 14:47:13 INFO  - jmeter.threads.JMeterThread: Thread finished:
MailNew 1-1 

2015/05/13 14:47:15 WARN  - jmeter.util.BeanShellTestElement: Debug #1 :
Fields_matchNr = 2 

2015/05/13 14:47:15 WARN  - jmeter.util.BeanShellTestElement: Debug #2 :
Fields_matchNr = 2 

2015/05/13 14:47:16 WARN  - jmeter.util.BeanShellTestElement: Debug #3 :
Fields_matchNr = 2 

2015/05/13 14:47:17 WARN  - jmeter.util.BeanShellTestElement: Debug #4 :
Fields_matchNr = 2 

2015/05/13 14:47:17 WARN  - jmeter.util.BeanShellTestElement: Debug #2 :
Fields_matchNr = 2 

2015/05/13 14:47:17 WARN  - jmeter.util.BeanShellTestElement: Debug #3 :
Fields_matchNr = 2 

2015/05/13 14:47:18 WARN  - jmeter.util.BeanShellTestElement: Debug #4 :
Fields_matchNr = 2 

2015/05/13 14:47:19 WARN  - jmeter.util.BeanShellTestElement: Debug #5 :
Fields_matchNr = 2 

2015/05/13 14:47:27 INFO  - jmeter.threads.JMeterThread: Thread is done:
MailNew 1-2 

2015/05/13 14:47:27 INFO  - jmeter.threads.JMeterThread: Thread finished:
MailNew 1-2 

2015/05/13 14:47:27 INFO  - jmeter.engine.StandardJMeterEngine: Notifying
test listeners of end of test 

2015/05/13 14:47:27 INFO  - jmeter.services.FileServer: Close:
./workload/MailNewUsers.dat@1116508025 

2015/05/13 14:47:27 INFO  - jmeter.gui.util.JMeterMenuBar:
setRunning(false,*local*)

 

 

Sequential execution:  when I change that to 1 thread with 2 iterations
(with the same two users from the CSV file):

 

2015/05/13 14:48:50 INFO  - jmeter.engine.StandardJMeterEngine: Running
the test! 

...

2015/05/13 14:48:50 INFO  - jmeter.gui.util.JMeterMenuBar:
setRunning(true,*local*) 

2015/05/13 14:48:50 INFO  - jmeter.engine.StandardJMeterEngine: Starting
ThreadGroup: 1 : MailNew 

2015/05/13 14:48:50 INFO  - jmeter.engine.StandardJMeterEngine: Starting 1
threads for group MailNew. 

...

2015/05/13 14:48:50 INFO  - jmeter.threads.ThreadGroup: Starting thread
group number 1 threads 1 ramp-up 19 perThread 19000.0 delayedStart=true 

2015/05/13 14:48:50 INFO  - jmeter.threads.ThreadGroup: Started thread
group number 1 

2015/05/13 14:48:50 INFO  - jmeter.engine.StandardJMeterEngine: All thread
groups have been started 

2015/05/13 14:48:50 INFO  - jmeter.threads.JMeterThread: Thread started:
MailNew 1-1 

2015/05/13 14:48:50 INFO  - jmeter.services.FileServer: Stored:
./workload/MailNewUsers.dat Alias: ./workload/MailNewUsers.dat@1800331312 

2015/05/13 14:49:00 WARN  - jmeter.util.BeanShellTestElement: Debug #1 :
Fields_matchNr = 1 

2015/05/13 14:49:01 WARN  - jmeter.util.BeanShellTestElement: Debug #2 :
Fields_matchNr = 1 

2015/05/13 14:49:01 WARN  - jmeter.util.BeanShellTestElement: Debug #3 :
Fields_matchNr = 1 

2015/05/13 14:49:02 WARN  - jmeter.util.BeanShellTestElement: Debug #4 :
Fields_matchNr = 1 

2015/05/13 14:49:02 WARN  - jmeter.util.BeanShellTestElement: Debug #5 :
Fields_matchNr = 1 

2015/05/13 14:49:15 WARN  - jmeter.util.BeanShellTestElement: Debug #1 :
Fields_matchNr = 2 

2015/05/13 14:49:16 WARN  - jmeter.util.BeanShellTestElement: Debug #5 :
Fields_matchNr = 2 

2015/05/13 14:49:22 ERROR - jmeter.util.BeanShellInterpreter: Error
invoking bsh method: source       Sourced file: ...

...

2015/05/13 14:49:24 INFO  - jmeter.threads.JMeterThread: Thread is done:
MailNew 1-1 

2015/05/13 14:49:24 INFO  - jmeter.threads.JMeterThread: Thread finished:
MailNew 1-1 

2015/05/13 14:49:24 INFO  - jmeter.engine.StandardJMeterEngine: Notifying
test listeners of end of test 

2015/05/13 14:49:24 INFO  - jmeter.services.FileServer: Close:
./workload/MailNewUsers.dat@1800331312 

2015/05/13 14:49:24 INFO  - jmeter.gui.util.JMeterMenuBar:
setRunning(false,*local*)

 

For the second user (iteration), with the field-match being correct, there
is no execution in the loop controller.  Huh?   (As a result, an essential
variable is not set, and a subsequent beanshell pre-processor fails.)

 

 

What am I missing here?  Help appreciated.

 

 

Regards,

 

Nige

Reply via email to