Skip to main content

JMeter Thread Groups: Type of Thread groups


1. Thread Groups:
 To start building the test script, we need to add a Thread Group.
Thread groups determine the user flow and simulate how users behave on the app. Each thread represents a user.
In layman’s words, Thread group allows us to design the execution process of performance testing like how many users, no of iterations,

Type of Thread Groups:
-         Thread group
-         setUp Thread Group
-         Tear Down Thread group
-         Stepping Thread Group (plugin in Jmeter)
-         Ultimate Thread Group  (plugin in Jmeter)

1.       Thread Group: this is basic type of group provided by JMeter with simple load test configuration. We can you this group if we want execute test like only loop, but we cannot define static load duration in this type. Also, we cannot plan step down or ramp down in this scenario

2.      setup Thread group: now think in some cases, you need to do something before running your tests, we can use the setUp Thread Group.

Let’s see the important aspects of this thread group:
-         setUp Thread Group perform Pre-Test Actions
-         setUp Thread Group will be executed BEFORE the test proceeds to the executing of regular Thread Groups
so, we need to understand when we can use setup thread group. Let’s see some examples:
-         Make a list of users that need to be run in your tests.
-         Get the data from the database and store into the .csv files or JMeter variables and use them during the test.
-         Send the email or any kind of notification to notify that the test has been started.
-         Perform some logic based on the user input via command line.

3.      Teardown Thread group: Similarly, like setup thread group, tear down thread group is also a special element. This one can be used for performing Post-Test Actions. This one will be executed AFTER the test proceeds to the executing of regular Thread Groups.

Please note that No matter where these elements are, they will always execute as the rule which describes above.
i.e. So, even the tearDown displays first, and setup is in the last of Test Plan tree, but while running, the order is still the same: setUp –> normal thread group –> tearDown.


so, we need to understand when we can use teardown thread group. Let’s see some examples:
-         Also, we need to be careful while configuring teardown thread group,
-         Send the email or any kind of notification to notify that the test has been stopped.
-         Collect some reporting stuff on response data
-         To delete test users after completion of the test
-          To delete bulk of data/order/pending request after completion of the test
-          To clear/delete dataset from a database for next run.
Please note that by default, tearDown Thread Group won’t run if the Test is completed as expected. If you want to run it anyway, mark the check-box “Run tearDown Thread Groups after the shutdown of main threads” from Test Plan element.

4.      Ultimate Thread group: Just suppose we need to perform load test for 1000 virtual users where in single execution different User slots (250, 100, 150, 200, 300) follow separate Ramp-up Time(Startup time), Ramp-down Time(Shutdown time) & ‘Hold Load for’ time.
A standard thread group is not capable of fulfilling such requirement.
 To apply such conditional load on server we have to use Ultimate Thread Group. Using Ultimate Thread Group you can define initial delays and setup duration of  run. With use of Ultimate Thread Group, we can take entire control of performance test execution by configuring infinite number of schedule records & separate ramp-up time, shutdown time, flight time for each schedule record. also generate variety of load patters based on requirement and configure perfect Spike Test

To use Ultimate thread Group we need to download the jar files.
How to download “Ultimate Thread Group” plug-in?
1. Click on the link to download Ultimate 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-0.10.jar to ext folder of Apache JMeter
          apache-jmeter-<version> –>lib –>ext -> Paste jmeter-plugins-casutg-<version>.jar and jmeter-plugins-manager-<version>.jar


5.      Stepping Thread group: The Distributed load can be form by adding Stepping Thread group as well.  Here the difference in Ultimate and Stepping Thread group is in Ultimate thread group each thread will start one by one but in stepping thread group we can start group of threads at a time.
 By using Stepping thread group, you can configure increment of thread load by portions, setup the hold load time and also decreasing the user load by portions. The feature of Stepping Thread Group is we can configure  own Performance Test. It will generate appropriate graphical presentation based on designed configuration. we can easily understand the nature of execution and modify the way we want.

How to download stepping thread group:
Stepping Thread Group is the feature of JMeter Plugin to test distributed load on server. Please follow below steps to get it installed for JMeter installation:
1) Download standard set of plugins from this URL: https://jmeter-plugins.org/
2) Extract the Zip file on desired location and copy the JAR file contained in lib\ext folder.
3) Paste the JAR file to $JMETER_HOME/lib/ext directory.
4) Also, copy all the JAR files contained in lib directory of the extracted location to $JMETER_HOME/lib folder.
5) Restart/Launch JMeter and it’s done.

We covered the types of thread group and usage.  I will cover configuration of thread group in next post.

Happy testing.

Comments

Popular posts from this blog

Pacing Calculation in Load runner

                                        Today i will share my understanding on “Pacing”. Usually people take pacing as think time only. I will try to explain both terms first Think time and Pacing, both are a kind of “wait” or “delay” in terms of time but still both differ from each other. Think time: Think Time is the time or delay which user can take between two actions For example, User opens a URL by pressing “Enter” and login page appears but to enter user name or password user is taking some time like copying from other place or remembering it or something like that. This wait or delay we can term as think time in load runner. Think time can be inserted by user in script or captured by tool itself Whereas, Pacing is the delay between two iterations of test. We can give pacing time by using “Runtime Settings” of load runner tool. We can calculate Pacing/Think...

MI Listener in LoadRunner

In a regular LoadRunner load test scenario (not over a firewall), The Controller has direct access to the LoadRunner agents running on remote machines. This enables the Controller to connect directly to those machines. When running Vusers or monitoring applications over a firewall, this direct connection is blocked by the firewall. The connection cannot be established by the Controller, because it does not have permissions to open the firewall. LoadRunner solves this problem by using a communication configuration based on HTTPS or secured TCP/IP. This configuration uses the standard SSL port on the firewall (port 443). The MI Listener is a component that serves as router between the Controller and the LoadRunner agent. When the LoadRunner agent connects to the MI Listener, the MI Listener keeps a listing of the connection to the agent using a symbolic name that the agent passed to it. When the Controller connects to the MI Listener, it communicates to the MI Li...

Configuring Vuser, Controller and Load Agent using MI Listener

          Configuring Vuser, Controller and Load Agent using MI Listener To Configure Vuser, Controller and Load Agent using MI Listener , make sure MI listener is running Running Vusers over a firewall : To set up your system to run Vusers over a firewall Ø   On each load generator machine that will be running over a firewall, configure the LoadRunner agent to communicate with the MI Listener. Ø   Configure the Controller machine to recognize the load generator and MI Listener machines. Configuring LoadRunner Agents over the Firewall Ø   Stop the LoadRunner agent by right-clicking its icon in the system tray and selecting Close. Ø   Run Agent Configuration from Start > Programs > LoadRunner > Advanced Settings, or run \launch_service\bin\AgentConfig.exe. Ø   Select the Enable Firewall Agent check box, and then click Settings. Ø   The Agent Configuration dialog box opens. Ø ...

Mobile Web(Http/HTML) Protocol IN Loadrunner

Today i will share my learning on performance testing performed on mobile application. We can use Load runner tool for mobile based applications. HP LoadRunner 11.50 has two new protocols for helping to record mobile applications: ·          Mobile Application – HTTP/HTML : recording scripts at the transport level for both browser-based mobile applications and native mobile applications, that communicate with their servers over HTTP ·          Mobile TruClient: recording scripts for browser-based mobile applications through the browser-based user interface.  This protocol is based on Ajax TruClient, using a browser modified to emulate the mobile browser. These protocols are independent of mobile operating systems, so will work on different versions of iOS, Android, Windows Mobile, WebOs (Palm), Blackberry, etc. Let’s see the picture behind the scene: We can run the p...

Performance Testing of Documentum

Before starting details of how to do performance testing on Documentum I will try share a basic of Documentum so you can get an idea why we need a different approach while doing performance testing on it. What is Documentum? Documentum is content management software that provides management of document content and attributes. Documentum product is a three-tier, client-server system built on top of a relational database. Documentum components comprise the following: ·          Content Server - Manage access to the metadata stored in the relational database and the  Content files, usually stored in the file system ·          Webtop/Wdk Server - J2EE-based web application framework Behavior behind the scene: An applet is invoked at the client side when a file within the docbase is accessed and while files are imported into a docbase. Applet/UCF client being client side Java applic...

Run Vugen script using command prompt

We can also run or replay our Vugen script using Dos Command Prompt (CMD) " LoadRunner install dir" \bin\mmdrv.exe -usr "path to .usr file" Note: LoadRunner install dir: Path of directory where Loadrunner has installed Hope this will help you guys. Happy Exploring!!!!

CITRIX Error in Load runner: Failed to get window size, wrong format.

Citrix based Applications are now days very popular. We can perform load testing on Citrix based application using load runner tool also. Quick tips for Citrix applications: 1. You can use "HTTP" and "Citirix" protocol together in load runner. 2. Try to keep windows in full screen mode. Some time while replaying the recorded script can give some error too. one of the error i have encountered was: Error: Failed to get window size, wrong format. Unable to detect client version. Warning: Extension CitrixClientImpl.dll reports error -1 on call to function ExtPerThreadInitialize Error: Vuser failed to initialize extension CitrixClientImpl.dll Resolve the issue: 1. Save the script after recording. 2. Go to Script directory and look for "default.cfg” file 3. Open the file into edit mode 4. Add below mentioned code in file and save it [CITRIX] DesktopColors=32 Colors=True Color (24 bit) Enctyption=128 Bit Window=1024 x 768 ...

Heap Dump : how to generate heap dump

Heap dump is important when it’s come to performance testing. Let’s start with what is heap in an application. Heap: Heap is dynamically collective amount of data /memory in partially binary sorted tree structure. But we need to loop up on heap in term of memory. Heap is part of memory where memory for objects assigned dynamically. Heap dump : Heap Dump is snapshot of memory at certain point which contains below mentioned information: -information of java objects -information of java classes or we can define as A heap dump is a textual or binary representation of the Java heap which is usually written to a file.   Heap dump is always helpful to analyze memory leak or high usage of memory of java application. There are various tools which help us to generate the heap dump. We can also generate heap dump without using tools. What we require is JVM (Java Virtual Machine)on system. There are various vendors for JVM but let’s concentrate on Sun JVM. ...

Software being installed: Cucumber Eclipse Feature 0.0.23.201811220126 Missing requirement: Cucumber Editor 0.0.23.201811220126

Error:    cucumber.eclipse.feature.feature.group 0.0.23.201811220126 While installing cucumber plugin for eclipse, sometimes we faced below mentioned error Error : Cannot complete the install because one or more required items could not be found.   Software being installed: Cucumber Eclipse Feature 0.0.23.201811220126 (cucumber.eclipse.feature.feature.group 0.0.23.201811220126)   Missing requirement: Cucumber Editor 0.0.23.201811220126 (cucumber.eclipse.editor 0.0.23.201811220126) requires 'osgi.bundle; org.eclipse.pde.ui 3.5.0' but it could not be found   Cannot satisfy dependency:     From: Cucumber Eclipse Feature 0.0.23.201811220126 (cucumber.eclipse.feature.feature.group 0.0.23.201811220126)     To: org.eclipse.equinox.p2.iu; cucumber.eclipse.editor [0.0.23.201811220126,0.0.23.201811220126 ] Solution: Clear your eclipse cache with below steps: Open Eclipse and navigate to the ...

Record scripts on mobile applications in LoadRunner

Record scripts on mobile applications in LoadRunner : As LoadRunner 11 in Patch 3, Mobile App (HTTP/HTML) protocol added which can help us to record scripts of mobile apps. There are three recording options in the recording Wizard: 1.Record and Analyze Traffic - Use mobile sniffer agent to capture traffic and then analyze. This allows Vugen to connect to the mobile agent on the server or localhost and carry out the business process for recording. 2. Analyze Traffic - Analyze traffic using existing capture file to generate script. This allows Vugen to scan a pre-captured network traffic (WinPcap) file and generate the code based on the traffic. 3. Record Emulator - Record script using a mobile device emulator. This allows Vugen to record an emulator installed on the Vugen machine. With this option, you need to verify that you are able to bring up the emulator and navigate to a URL outside of Vugen to make sure the emulator settings are correct.