What Is JMeter? Features Overview
If you are desperately looking for a good performance testing or load testing software, JMeter will most likely end up at the top of your list. Acknowledged by time, it has a strong and widespread reputation for being an extremely efficient and stable solution. For instance, Yandex QA department has been using JMeter in commercial projects development for a long time now. That said, let’s analyze this tool and see what makes it so popular.
Pros
- Cross-platformity. JMeter has unlimited testing capabilities allowing you to work both with local and server-based instances. The only thing you need to get started is Java (JRE) installed on the host.
- Open-source. Basically, JMeter is a 100% pure Java desktop application. Thanks to its open-source nature, you have a carte blanche to modify the existing plugins or create your own ones.
- Easy to deploy and easy to use. In order to locally deploy JMeter, you need to download and unpack the archive from its official website. Then you need to install Java (JRE), if you haven’t already, and run jmeter.jar. When it’s done, the tool is ready to go. What makes JMeter so efficient is the interface — all the steps are fairly intuitive and simple. However, if something’s unclear, there is plenty of documentation as well as various use cases available on the official website. On top of that, JMeter allows for creating test cases both with manually written code (Java, BSF, JSR223 etc. ) and no single line of a code at all. The last option suggests using just a set of ready-made components.
- Works great even without UI. Test cases are executable in the command line which allows for their full integration into CI tools’ cases.
- A wide range of ready components. JMeter comes with almost everything you need for any kind of testing. And if that’s not enough, you can always create a component of your own.
- Has a set of tools for collecting and displaying results. The latter ones are also called “reports” and can provide you with extremely detailed information. The results can be saved in CSV, XML, HTML etc.
- Supports regular expressions.
- Clusterability. JMeter allows you to group machines into some sort of a testing farm operating as a single unit.
- Can record custom scripts and the sequence of visited pages. A test plan is made based on this sequence.
- Supports basic Java sampler override (org.apache.jmeter.protocol.java.sampler.JavaSamplerClient). It is mostly used to implement their own version of this interface which allows for adding or reducing the number of threads as well as changing input control, parameters, and data collection.
- Great page structure management. The tool supports JQuery selectors and XPath query language.
- Offers a convenient way of storing test scripts. Storing test scripts in repos you to keep track of and easily manage all the changes.
- Allows for load testing of mail servers and databases (Including NoSQL-type databases such as MongoDB).
Cons
- Java environment is notorious for memory leaks and excessive performance consumption.
- The disadvantage of simulating user behavior in JMeter hides in the lack of support of random time intervals for different URLS between queries and the think time.
- Some users report about various issues with the official documentation. Though, we think it’s a rather controversial point.
- JMeter’s UI may seem like it was built in 1990s, but hey, the world is not perfect!
Summing up
There is no denying that JMeter does a great job when it comes to load and stress testing. With JMeter, you can test HTTP, HTTPS, SOAP, FTP, SMTP, POP3, IMAP, LDAP, and databases. However, functional testing of a web interface is hardly its greatest strength. In the next article we’ll expand on how to use JMeter and some case examples from our experience.