Tuesday, 10 May 2016


JMeter is a popular open source tool for load testing, it is a 100% pure Java desktop application. It requires JDK 5 or higher. JMeter has many useful modeling features such as thread group, timer, and HTTP sampler elements. This article complements the JMeter User's Manual and provides guidelines for using some of the JMeter modeling elements to develop a quality test script. Apache JMeter is designed to simulate execution of requests over variety of protocols (the most widely used is HTTP/HTTPS) including web, TCP, JDBC, LDAP, JMS, SMTP, POP, etc.

Apache JMeter may be used to test performance both on static and dynamic resources (Webservices (SOAP/REST), Web dynamic languages - PHP, Java, ASP.NET, Files, etc. -, Java Objects, Data Bases and Queries, FTP Servers and more). It can be 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 use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

Apache JMeter features include:
Ability to load and performance test many different server/protocol types:
Web - HTTP, HTTPS
SOAP / REST
FTP
Database via JDBC
LDAP
Message-oriented middleware (MOM) via JMS
Mail - SMTP(S), POP3(S) and IMAP(S)
MongoDB (NoSQL)
Native commands or shell scripts
TCP
Complete portability and 100% Java purity.
Full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
Careful GUI design allows faster Test Plan building and debugging.
Caching and offline analysis/replaying of test results.
Highly Extensible core:
Pluggable Samplers allow unlimited testing capabilities.
Several load statistics may be chosen with pluggable timers.
Data analysis and visualization plugins allow great extensibility as well as personalization.
Functions can be used to provide dynamic input to a test or provide data manipulation.
Scriptable Samplers (BeanShell, BSF-compatible languages and JSR223-compatible languages)


JMeter is not a browser. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever viewed at a time).