Software load testing
The term load testing[1] or stress testing is used in different ways in the professional software testing community. Load testing generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program concurrently.[2]
Browser-level vs. protocol-level users
[edit]Historically, all load testing was performed with automated API tests that simulated traffic through concurrent interactions at the protocol layer (often called protocol level users or PLUs). With the advance of containers and cloud infrastructure, the option is now present to test with real browsers (often called browser level users or BLUs).[3] Each approach has its merits for different types of applications, but generally, browser-level users will be more akin to the real traffic that a website will experience and provide a more realistic load profile and response time measurement.[4] BLUs are certainly a more expensive way of running tests and cannot work with all types of applications, specifically those that are not accessible through a web browser like a desktop client or API-based application.[5]
Load testing tools
[edit]| Tool name | Company name | License | Type | Pricing | Focus | Notes |
|---|---|---|---|---|---|---|
| Apache JMeter | Apache Software Foundation | Apache License 2.0 | Local | Free | Java desktop application for load testing and performance measurement. | |
| BlazeMeter | Perforce Software, Inc | Proprietary | Cloud-based | Free version, demo, paid plan, contact for pricing | Website, web app, mobile, database, and other scenarios | Scalable load up to 200,000 concurrent simulated browser users from across eight geographical locations. Can also be used for integration and functional testing. |
| Blitz (discontinued in 2018) | Spirent Communications | Proprietary | Cloud-based | Trial available | Websites, mobile, and REST APIs | It allows to simulate of up to 50,000 simultaneous virtual users from different worldwide locations. |
| Flood | Tricentis APAC Pty Ltd | Proprietary | Cloud-based | Free plan, paid plan, contact for pricing | Browser based load testing, APIs and protocol driven applications | Scalable load up to millions of concurrent users from all geographic regions available on AWS and Azure, plus on-premise deployments. Pricing is based on Virtual User Hours consumed each month.[6][7] |
| Gatling | Gatling Corp | Apache License 2.0 | Local, cloud-based | Free version, demo, paid plan, contact for pricing | Java web applications | Portable HTML reports. |
| HammerDB | GPLv3 | Local | Free | Databases | Database load testing and benchmarking tool. | |
| Loader.io | SendGrid, Inc | Proprietary | Cloud-based | Free plan, paid plan, contact for pricing | Web applications and API | |
| LoadRunner | Micro Focus | Proprietary | Local, Cloud-based | Free community edition; other: demo, free trial, contact for pricing | Primarily used for executing large numbers of tests (or a large number of virtual users) concurrently. Can be used for unit and integration testing as well. | |
| LoadUI (integrated now in ReadyAPI) | SmartBear Software | EUPL | Local | Demo available | Cross-platform load testing tool, targeted mainly at web services. Integrates with soapUI. | |
| Locust | Open source | MIT License | Local, cloud-based | Free, hosted paid version available | Python based framework with load tests expressed in regular code | |
| Login VSI | Login VSI, Inc. | Proprietary | Local | Demo, contact for pricing | Virtual windows desktops workloads | |
| NeoLoad | Neotys | Proprietary | Local, cloud-based | Free trial, demo, contact for pricing | Web and mobile | Load can be generated from local agents or from the cloud. |
| OpenSTA | CYRANO | GNU General Public License 2.0 | Local | Free | Web server | Utilizes a distributed software architecture based on CORBA. OpenSTA binaries available for Windows. |
| Parasoft SOAtest | Parasoft | Proprietary | Local, cloud-based | Demo, contact for pricing | Performance testing tool that verifies functionality and performance under load. Supports SOAtest tests, JUnits, lightweight socket-based components. Detects concurrency issues. | |
| Rational Performance Tester | IBM | Proprietary | Local, cloud-based | Contact for pricing | Eclipse-based large-scale performance testing tool primarily used for executing large volume performance tests to measure system response time for server-based applications. | |
| Siege | Open source | GPLv3 or later | Local | Free | Web servers | Supports basic authentication, cookies, HTTP, HTTPS and FTP protocols. |
| Silk Performer | Micro Focus | Proprietary | Local, cloud-based | Free trial, contact for pricing | Application performance tool with cloud and local virtual agents. Supports most protocols and applications. Licensed. | |
| SoapUI | SmartBear Software | EUPL Version 1.1 | Local | Free | ||
| Test Studio | Progress Telerik | Proprietary | Local | Free trial, demo, paid plan | Assess how the website would perform if visited by a large number of users at the same time. | |
| Tsung | Open Source | GPL-2.0 | Local | Free | Web servers, Databases, XMPP | It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, MQTT and Jabber/XMPP servers. |
| Visual Studio Enterprise edition (deprecated after Visual Studio 2019) | Microsoft | Proprietary | Local | Paid plan | Visual Studio Enterprise edition includes a load test tool that enables a developer to execute a variety of tests (web, unit, etc...) with a combination of configurations to simulate real user load.[8] Microsoft announced[when?] that its web performance and load test functionality was deprecated after Visual Studio 2019. | |
| Vegeta | MIT License | Local | Free | HTTP applications | ||
| WebLOAD | RadView Software Ltd | Proprietary | Local, cloud-based | Free trial, demo, contact for pricing | Web and Mobile applications and API | Load testing tool for web and mobile applications including Web Dashboard for performance test analysis. Used for large-scale loads which can be generated also from the cloud. Licensed. |
References
[edit]- ^ Jiang, Zhen Ming; Hassan, Ahmed E. (2015). "A Survey on Load Testing of Large-Scale Software Systems". IEEE Transactions on Software Engineering. 41 (11). IEEE: 1091–1118. Bibcode:2015ITSEn..41.1091J. doi:10.1109/TSE.2015.2445340.
- ^ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 6: Load Testing. CreateSpace. ISBN 978-1482657753.
- ^ Platz, Wolfgang. "The future of load testing is BLU". InfoWorld. Retrieved 2018-11-23.
- ^ "We're All Load Testers Now (Maybe) - DevOps.com". DevOps.com. 2018-02-08. Retrieved 2018-11-23.
- ^ Kumar, Chandan (2018-11-17). "How to Perform Load Testing With Real Browsers Using Flood Element?". geekflare.com. Retrieved 2018-11-23.
- ^ Erinle, Bayo (2014). JMeter Cookbook. Packt Publishing. ISBN 978-1783988280.
- ^ Erinle, Bayo (2015). Performance Testing with JMeter. Packt Publishing. ISBN 978-1784394813.
- ^ "Load Testing ASP.NET Applications with Visual Studio 2010". Eggheadcafe.com. Retrieved 2013-01-13.