Why opt for expensive commercial tool licensing and maintenance, when free tools are available in the market. All you need to put in is a little bit of planning and effort.
Jmeter is one of the best leading performance testing tools from Apache open source community. With great community support, the tool supports continuous releases, improvement and meets the needs of the testers along with the needs of the business community.
The Apache JMeter™ is 100% pure Java application designed to load test functional behavior and measure performance. Originally designed for testing Web Applications, the tool has expanded to other test functions. Since the application is written in Java, it can be run on any machine, Windows, Linux or Mac.
Apache Jmeter is used to test the performance on static as well as dynamic resources (Files, Web dynamic languages – PHP, Java, ASP.NET, Java Objects, Data Bases and Queries, FTP Servers and more). It is also used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types. You can also use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
» Ability to load and performance test across many different server/protocol types:
From the above diagram, it is clear that Listeners and Config elements can be configured at any level, thus defining the scope for them. If the listeners are defined at the Sampler level, they work only for that sampler. If they are defined at the thread group level, they can work with all the samplers under the thread group. If they are defined at the Test Plan level, they are applicable to all the thread groups and all the samplers under the thread groups.
However, this works a little different for the Config elements. Each of the config elements have their own scope which would be explained in detail at the Config Elements section.
A test plan contains the overall settings of the performance test. A test plan can have multiple Config elements, listeners and Thread Groups. The test plan can control the execution (parallel or sequential) of thread groups and can also be used to save the responses.
A thread group is where the number of threads (users), ramp-up rate and the start times of the thread group are defined. All the items under a thread group are executed by multiple threads/users. A thread group can have multiple samplers, config elements, controllers etc.
These are the actual requests made from the JMeter tool. These samplers can be a HTTP Request, Web Service request or JDBC request or can be even a java request. For performance testing the web applications using JMeter, each thread group will have several HTTP requests which will be executed by multiple threads concurrently and thus causing the load on the web application.
Config elements are the ones which can be configured the way the samplers /thread groups / test plan are executed. The most commonly used HTTP config elements are HTTP Cookie Manager, HTTP Cache manager, HTTP Auth Manager. Similarly to run a JDBC sampler, the JDBC config element has to be specified.
Controllers are used to control the flow of a thread through the thread group. All the conditions like If, for, while etc. are the examples of Controllers.
Related: Top 10 Mega Software failures of 2014
Assertions are required to validate the response that is received when a request (a sampler is executed) is made to the application. The assertions can be text assertions, XML assertions, Xpath etc.
Once a response is received for a particular sampler request, Post processors are used to perform actions. The most commonly used post processor is the regular expression extractor.
Timers are used to delay the execution of the thread or to make the thread wait for the specified time. The commonly used timers are constant timer, Gaussian random timer etc.
Listeners are the reporting entity of JMeter which can be configured at the sampler / thread group /test plan level. The most commonly used listeners are View results tree, View results summary and aggregate report.
Third party plugins for Jmeter
The JMeter tool itself has a strong position in the world of performance testing, because it offers professional level features, comparable to commercial tools, and still stays free and open source. However, out-of-the-box JMeter has some weak points, mainly a lack of reporting features and visualizations.
JP@GC targets this weak point and offers several groups of test results visualization plugins. It is a popular third-party plugins set which extends Meter’s functionality with a multiple graphs, new load delivery controllers and other functions that are missing from the original JMeter package. Basically, the JP@GC set contains two types of plugins: graph plugins and JMeter functionality extensions.
JC@GC functionality extensions for Jmeter:
Ultimate Thread Group: “Ultimate” means there will be no need in further Thread Group plugins.
Infinite number of schedule records
Separate ramp-up time, shutdown time, flight time for each schedule record
And, of course, trustworthy load preview graph
infinite number of schedule records
separate ramp-up time, shutdown time, flight time for each schedule record
Sample Ultimate Thread Group as following:
Stepping Thread Group: JMeter has only one out-of-the-box option for threads (users) scheduling: simple ramp-up. But many users, especially the users with experience on HP LoadRunner are used to a flexible thread scheduling algorithm. Stepping Thread Group adds a thread scheduling similar to LoadRunner.