JMeter – Free-Form Arrivals Thread Group

In the previous article, I covered the Arrivals Thread Group which works on the rate of iteration per minute or second. To continue the same concept, Blazemeter added some more flexibility and created another JMeter Thread Group element called ‘Free-Form Arrivals Thread Group’. The Arrivals Thread Group element has certain limitations, such as if you want to do a spike test then you can not create such a workload. Such a type of workload can be easily prepared by using the flexible feature of the Free-Form Arrivals Thread Group. Using Free-Form Arrivals Thread Group you can apply conditional load on the server. Free-Form Arrivals Thread Group also ramp-down the threads gracefully by letting the users complete the iteration before exiting from the test.

How to download the ‘Free-Form Arrivals Thread Group’ plug-in?

  1. Click on the link to download Free-Form Arrivals Thread Group JMeter Plugin
  2. Unzip the folder
  3. Copy the file jmeter-plugins-cmn-jmeter-<version>.jar to lib folder of Apache JMeter
    apache-jmeter-<version> –>lib –> Paste jmeter-plugins-cmn-jmeter-<version>.jar
  4. Copy the files jmeter-plugins-casutg-<version>.jar and jmeter-plugins-manager-<version>.jar to ext folder of Apache JMeter
    apache-jmeter-<version> –>lib –>ext -> Paste jmeter-plugins-casutg-<version>.jar and jmeter-plugins-manager-<version>.jar

How to add the ‘Free-Form Arrivals Thread Group’ in Test Plan?

  1. Select the ‘Test Plan’ node
  2. Right-click on the ‘Test Plan’ node
  3. Hover the mouse on ‘Add’
  4. Hover the mouse on ‘Thread (Users)’
  5. Click ‘bzm – Free-Form Arrivals Thread Group’
Figure 01: Adding Free-Form Arrivals Thread Group

How to configure workload using ‘Free-Form Arrivals Thread Group’?

  1. Add the Free-Form Arrivals Thread Group in the test plan by following the above-described steps
  2. Provide the values for the below input fields:
    1. Start Value
    2. End Value
    3. Duration
    4. Time Unit
    5. Thread Iterations Limit
    6. Log Threads Status into File
    7. Concurrency Limit
Figure 02: Free-Form Arrivals Thread Group

What are the input fields of the ‘Free-Form Arrivals Thread Group’?

  1. Name: To provide Thread Group name. It may be your Test Case/Test Scenario name
  2. Comments: To provide comments.
  3. Action to be taken after a Sampler error: Actions taken in case of sampler error occurs, either because the sample itself failed or an assertion failed etc. The possible choices are:
    1. Continue – ignore the error and continue with the test
    2. Start Next Loop – ignore the error, start next loop and continue with the test
    3. Stop Thread – current thread exits
    4. Stop Test – the entire test is stopped at the end of any current samples
    5. Stop Test Now – the entire test is stopped abruptly. Any current samplers are interrupted if possible.
  4. Thread Schedule (arrivals/min): Total number of iterations to be started in 1 minute. You have to input the iteration count value for
    1. Start Value
    2. End Value
    3. Duration
  5. Add Row: To add a new row in the Thread Schedule section.
  6. Copy Row: To copy the selected row in the Thread Schedule section.
  7. Delete Row: To delete the selected row in the Thread Schedule section.
  8. Time Unit: To change the input time unit either in minutes or in seconds.
  9. Thread Iterations Limit: Maybe the purpose of this option to control the loop count, but unfortunately it does not work so you may keep it blank.
  10. Log Thread Status into File: Provide the full path of the file along with the name where you want to save the log file. e.g. C:\PerfMatrix\Result\testLogFile.log
  11. Concurrency Limit: Provide the thread count to maintain the user concurrency.


Design a spike test scenario with a baseload of 20 iterations/minute and the height of the spike would be 100 iterations/minute for a one-minute duration. The total test duration would be 1 hour with 4 spike counts.

Figure 03: Free-Form Arrivals Thread Group Example

Test Scenario which you can design