Purpose of Throughput Controller?

user28 picture user28 · Apr 30, 2012 · Viewed 15.8k times · Source

I need some help to use JMeter. I want to record two different scenarios like clicking 2 different buttons. If i try to run for 2 users, one user should hit first button, another should hit another button concurrently.

I know this is the basic question. But i am new to this one. Thats why asking here. I have tried like below:


Thread Group
 -Throughput Controller
       --Login
       --Clicking 1st button
 -Throughput controller
       --Login
       --Clicking 2nd button

When i run with 2 users using CSV Data Set Config, both login takes same user.

And also i need to test for concurrency. I am not sure how to execute this one correctly. Could anyone can help me in this?

Answer

Aliaksandr Belik picture Aliaksandr Belik · May 2, 2012
  1. Throughput Controller will work correct if you have more than single iteration.
    I.e. you should have N loops (using Loop Controller e.g.) with child Throughput Controller set X percents (X is integer, 0 <= X <= 100) - so than X% from N loops is integer value too.
    You may look into this discussion for better examples and explanations.

  2. For your case you can try to use construction like the following:


Thread Group
Number of Threads = 2
Loop Count = 1
+- While Controller
   Condition = ${__javaScript("${login}"!="<EOF>",)}
   +- CSV Data Set Config
      Filename = users.csv
      Variable Names = login,pwd
      Delimiter = ,
   +- Loop Controller
      Loop Count = 10
      +- Login
      +- Throughput Controller
         Percent Execution
         Throughput = 50.0
         +- Clicking 1st button
      +- Throughput Controller
         Percent Execution
         Throughput = 50.0
         +- Clicking 2nd button
      +- Logout

where
- there are 2 threads (Thread Group: Number of Threads = 2) started simultaneously each with unique credentials extracted from csv-file (While Controller + CSV Data Set Config), used for Login;
- the whole test-flow - login > click button (either first or second) > logout - will be repeated N times using Loop Controller, which one makes Throughput Controller work.