In our age of high speeds, time is the most valuable resource, because in connection with the development of the Internet, there is a lot of information and it is simply impossible to analyze it all thoroughly. In this regard, the issue of the speed of loading applications, web pages, videos and other content is especially acute. Also, the performance of applications and websites as such plays an important role, since a sharp influx of a large number of users can lead to a temporary failure of services, and sometimes to a complete stop. Therefore, in IT companies, close attention is paid to load testing.
And the first assistant in load testing has become various tools that help the tester in his daily work. In today’s article, we will look at the main ones with you.
In the first place, of course, the well-known JMeter. This is one of the most popular and at the same time fairly simple tools. JMeter is free and open source tool with a large community and support. It is developed in the Java programming language and supports load testing of both web applications and various backend services, database servers, and so on. JMeter has its own development environment where you can create your load test plan. There is an option to interact with Jenkins for continuous integration with development. In general, despite the fact that this tool was originally designed for load testing, it is quite multifunctional and can be used not only for load testing, but also for many other tasks, ranging from manual testing to management and monitoring tools.
Another load testing tool is Locust . You write all your tests in the Python programming language, without using the user interface and XML. Locust has a web interface that allows you to monitor the progress of your tests and change them as you go. Locust was created primarily for testing the load of websites and services, but the possibility of expanding its functionality is also present, due to its small size and flexibility.
The Gatling load testing tool is designed for continuous load testing and integrates with CI/CD via Jenkins. Gatling has two options, free and various paid plans for large companies with trial periods. They developed their own Domain Specific Language (DSL) so that they could use any programming language when creating tests.
Tsung is another free and open source distributed load testing tool that supports many different protocols. It was written in Erlang, developed by Ericsson, which was once associated with reliability and fault tolerance. It can be used to load HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, MQTT and Jabber/XMPP servers. It can be distributed across multiple client machines and is capable of simultaneously simulating hundreds of thousands of virtual users. Tsung has a web interface for viewing statistics in real time during tests and a command line for CI/CD integration.
A fairly young, but promising tool for load testing Fortio . It is very small, with minimal dependencies and does not require many resources (the docker image is only 4 megabytes). It is essentially an embeddable library for the Go programming language, as well as a command line tool and a server process. But it also has a simple web interface and a REST API to run and view a graphical representation of the results.
Of course, reviewing all the existing load testing tools can stretch for several pages and, frankly, this does not make much sense, since most of the tools are paid. Of course, many have trial versions and modes, but mostly only large companies and corporations do not save on the load. Medium and small companies, not to mention startups, prefer to use free solutions.