Is your system adequate to handle the demands that are going to be placed on it? Are you sure? Really sure? How will it behave under pressure? The only way to really answer these questions is with load testing. Load testing exposes bottlenecks and problem areas. It enables fine-tuning that keeps everything humming along at maximum speed and efficiency. What really works? There are lots of choices.
1. Apache JMeter
Apache JMeter is a Java application that can simulate heavy loads and measure performance on a wide variety of servers, networks, or other objects, including files, databases, and web services. It can test both static and dynamic resources. Its features are ordinarily implemented as plugins, and it’s very extensible. It can be useful for identifying bottlenecks as well as for measuring performance under stress. It includes a very user-friendly GUI. It can run on any platform that supports Java.
While Apache JMeter measures performance for a variety of applications, ApacheBench is very focused on one thing: HTTP. It was originally developed to test the Apache HTTP server, but it works just as well for any other web server. ApacheBench supports concurrent testing, which makes testing locking issues or race conditions feasible. ApacheBench is included with every Apache installation.
Grinder is another Java-based load tester. It can be used to test anything with a Java API, which includes SOAP and REST services, HTTP web servers, and application servers such as CORBA, RMI, JMS, and EJBs. Tests to be run are specified using dynamic scripting. The default scripting language is Jython, the Java version of Python. Scripting allows Grinder to test Java, Jython, or Clojure code; allows sequential testing of branches and loops; and can test dynamic requests. Scripting can replace plug-ins, making Grinder easy to extend. Grinder provides a console that can be used as an IDE.
Gatling is based on Scala, Akka, and Netty. It supports OSX, Linux, and Windows. A domain-specific language is used for describing scenarios. Gatling allows performance test code to be run like production code. It’s extensible through plug-ins such as the gradle-plugin, the maven-plugin, and the jenkins-plugin. Through the use of asynchronous concurrency and asynchronous IOs, Gatling saves both time and resources. It primarily evaluates web application performance, and it includes sophisticated graphical reporting and a basic GUI.
Tsung is a load-testing application written in Erlang. Multithreads allow the simulation of thousands of users. Tsung doesn’t include a GUI, but it does support shell scripts, which include Tsung recorder, a bash script which can capture HTTP and Postgres requests; Tsung, another bash script which issues start, stop, and debug commands; and tsung_stats, which is a Perl script that can produce graphical and statistical reports.
Httperf is an HP tool for testing web server performance. As its name indicates, it generates workloads for the testing of HTTP servers. Httperf can be resource intensive and so shouldn’t be run on the system being profiled. It generates a report that includes number of connections, request rate, and other useful information.
7. HP LoadRunner
LoadRunner is a load-testing tool that was acquired by Hewlett-Packard in 2006. Simulation is accomplished by generating messages. LoadRunner supports Microsoft .NET and Java; databases such as Microsoft SQL Server and Oracle; protocols such as DNS, FTP, and LDAP; e-mail protocols such as IMAP, MAPI, POP3, and SMTP; and technologies such as Citrix ICA and RDP.
LoadComplete can set up testing in just seconds. It facilitates both web and mobile load testing. No scripting knowledge is required. Simulations are available for different types of users, such as casual users or buyers. Testing can be performed on different browsers, such as IE, Chrome, and Firefox. Data can be imported from Excel, CSV, text files, and databases, as well as generated.
9. IBM Rational Performance Tester
IBM’s Rational Performance Tester tests the scalability of web and server applications, identifies bottlenecks, and simplifies load testing. Code-free test scripts permit testing without programming. Tools are included for the identification and analysis of performance problems. Real-time reporting makes test results easy to view and understand. Rational Performance Tester can run on AIX, Linux, Mac OS, Windows, and z/OS.
NeoLoad can load test both web and native applications on mobile devices. NeoLoad provides statistics on the responsiveness of databases, web servers, and network components. Scripting isn’t required; NeoLoad has a simple-to-use GUI interface. Wizards create unique virtual users through drag and drop. Populations can be created from the virtual users. Predefined thresholds help to diagnose problems.
BlazeMeter is a load testing platform-as-a-service that provides out-of-the-box solutions. It offers testing that can run from the cloud or on-premise. Traffic for testing can be generated using Amazon or Google cloud servers, or software can be installed for internal network testing behind secure firewalls. BlazeMeter tests mobile apps, web apps, websites, APIs and web services. It also offers the capability of running JMeter test scripts. It can simulate over one million concurrent users. It offers testing locations in the US, Asia, and Europe.
LoadStorm offers easy setup that permits same-day testing. Its customizable scripts are intuitive and powerful, providing the ability to specify user behavior ad test duration. Graphical details help identify bottlenecks. Scripts can be built from HAR recordings and can be modified to supply exactly the desired detail. Content validation is available. Information is provided on concurrent users, requests per second, throughput, and peak response time.
13. Soasta CloudTest
Soasta CloudTest is a scalable cloud-based testing service that includes a sophisticated GUI and real-time analytics. CloudTest enables global testing with any number of users. It can utilize usage patterns to build test scenarios. CloudTest offers testing from any of 95 locations and 40 cloud service providers, permitting accurate simulations of user traffic.
Loader.io is a cloud-based SaaS that permits testing through either a GUI or an API. It provides concurrent testing and advanced analytics. Tests can be monitored in real time. Integration tools are available.