What is Performance Testing?
Performance Testing is a non-functional testing technique performed to determine the system parameters in terms of responsiveness and stability under various workloads. It ensures the software application will perform well under its expected workload.
Speed
Determines whether the application responds quickly. It measures the latency and responsiveness of the system under load.
Scalability
Determines the maximum user load the software application can handle. It tests whether the system scales appropriately when resources are added.
Stability
Determines if the application is stable under varying loads, ensuring it does not crash or degrade over extended periods of heavy use.
Why Do We Need Tools?
Imagine a scenario where a client asks you to test an application with 10,000 concurrent users. Without an automated tool, you would need to arrange 10,000 real people, equip them with 10,000 laptops, and coordinate them to click the login button at the exact same millisecond.
Constraints of Manual Performance Testing:
Core Objectives
Assess Response Time
Verify that transactions complete within the defined Service Level Agreement (SLA).
Identify Bottlenecks
Locate the weakest link in the architecture (Database, App Server, Network, etc.).
Capacity Planning
Determine how much additional hardware is needed for future growth.
Popular Performance Testing Tools
The market is filled with both commercial and open-source tools. The choice depends on the application protocol, budget, and scripting expertise.
| Tool Name | Vendor / Creator | License Type | Key Strength |
|---|---|---|---|
| LoadRunner | Micro Focus (formerly HP) | Commercial (Enterprise) | Supports almost all legacy and modern protocols (SAP, Citrix, Web, Database). |
| JMeter | Apache | Open Source | Industry standard for Web HTTP/HTTPS, REST/SOAP APIs, and JDBC. Java-based. |
| NeoLoad | Tricentis (formerly Neotys) | Commercial | Scriptless design, excellent for Agile/DevOps, good SAP and Citrix support. |
| k6 | Grafana Labs | Open Source & Cloud | Developer-centric, uses JavaScript, runs from CLI, highly efficient resource usage. |
| Gatling | Gatling Corp | Open Source & Cloud | Scala-based "code-as-infrastructure" approach. High performance asynchronous engine. |
| Locust | Locust.io | Open Source | Python-based, highly distributed, developer-friendly event-driven framework. |
| RPT (Rational Perf Tester) | IBM | Commercial | Enterprise tool, Eclipse-based, strong integration with IBM suites. |
| OATS | Oracle | Commercial | Oracle Application Testing Suite; best for testing Oracle Forms, EBS, and NCA. |
| VSTS / Azure Load Testing | Microsoft | Commercial | Deep integration with .NET stack and Azure cloud environments. |
| WebLoad | RadView | Commercial | JavaScript scripting, good for complex web applications and heavy AJAX. |