Top 10 Website Stress Testing Tools

           Two days ago, jnj published “How to Test Web Applications on Low-Bandwidth Networks” on this site, which focused on testing under poor network conditions. Below are ten free tools for web load/stress testing, so you can find out how much concurrency your server and web applications can handle, as well as your website’s performance. I believe the development team behind the Beijing Olympic Committee’s ticketing website had no idea such testing tools existed.

Grinder –  Grinder is an open-source JVM load testing framework that facilitates distributed testing using many load injectors. It supports the Jython scripting engine for executing test scripts, and HTTP testing can be managed through an HTTP proxy. According to the project’s website, Grinder’s main target users are “people who understand the code they are testing—Grinder is not just a ‘black box’ test with a set of correlated response times. Because the test process can be coded—rather than simply scripted—programmers can test internal layers of an application, not just response times through the user interface.”

Pylot -Pylot is an open-source tool for testing web service performance and scalability. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent loads (HTTP Requests), verifies server responses, and produces reports with metrics. Test suites are executed and monitored via a GUI or shell/console.

Web Capacity Analysis Tool (WCAT) – This is a lightweight load-generation utility that not only replays scripted HTTP requests against a web server (or load-balanced server farm) but also collects performance statistics for later analysis. WCAT is a multi-threaded application and supports controlling multiple load-test clients from a single source, so you can simulate thousands of concurrent users. The utility leverages your old machines as test clients, where each test client can, in turn, spawn multiple virtual clients (the maximum number depends on the client machine’s network adapter and other hardware). You can choose whether to use HTTP 1.0 or HTTP 1.1 requests, and whether to use SSL. And, if your test scenario requires it, you can use scripted Basic or NTLM authentication to access restricted parts of the site. (If your site uses cookie, form, or session-based authentication, you can create the correct GET or POST request to authenticate the test user.) WCAT also manages any cookies your site might set, so configuration files and session information are preserved permanently.

 

fwptt – fwptt is also a tool for load testing web applications. It can record general requests as well as Ajax requests. It can be used to test asp.net, jsp, php, or other web applications.

JCrawler – JCrawler is an open-source ( CPL) stress testing tool for web applications. As the name suggests, it is a crawler-like tool written in Java. Just give it a few URLs, and it will start crawling, generating load on your web application in a special way. This tool can be used to test the load that search engines place on your site. Of course, it has another function: you can build your site map and, with a click, automatically submit the Sitemap to the top 5 search engines!

Apache JMeter – Apache JMeter is a 100% pure Java desktop application designed specifically for running and load testing servers. Originally designed for Web/HTTP testing, it has since expanded to support a wide variety of test modules. It ships with modules for HTTP and SQL databases (using JDBC). It can be used to test server performance against static or active databases, simulate heavy loads on a server or network system to test its resilience, or analyze overall performance under different load types. It also provides an alternative interface for customizing data display, test synchronization, and the creation and execution of tests.

Siege -Siege is a stress testing and benchmarking tool designed for web developers to evaluate how well their application withstands pressure: it can simulate concurrent multi-user access to a web site based on configuration, record the response time for each user’s entire request process, and repeat this under a certain number of concurrent accesses. Siege supports basic authentication, cookies, and the HTTP and HTTPS protocols.

http_load – http_load runs in parallel multiplexed mode to test the throughput and load of web servers. Unlike most stress testing tools, it can run as a single process and generally won’t crash the client machine. It can also test HTTPS website requests.

Web Polygraph – Web Polygraph is another tool for testing web performance. This tool is a standard benchmarking tool for many companies, including Microsoft, which uses it as a benchmark when analyzing its software performance. Many tester recruitment ads specifically require proficiency in this testing tool.

OpenSTA – OpenSTA is a free, open-source web performance testing tool that can record highly powerful scripting processes and execute performance tests. For example, it can simulate multiple different users logging into the target website simultaneously. It also allows editing of the recorded test scripts using a specified syntax. After recording a test script, you can edit it to perform specific performance metric analysis. Its rich graphical test results significantly enhance the readability of test reports. OpenSTA is based on a CORBA architecture; it works by virtualizing a proxy, using its proprietary script control language to record all HTTP/S traffic passing through the proxy. By analyzing the various performance metrics collected by OpenSTA’s performance metric collectors and the HTTP data, you can analyze system performance.

Feel free to leave a comment with the WEB application performance testing tools you find effective.

 

 

 

 

After finishing coding an application or configuring a server, I bet many of you are like me, very eager to know exactly how much load it can handle. In this article, I’ll introduce ten free tools that can be used for web load/stress testing. This way, you can find out how much concurrency your server and your web applications can withstand, and understand your website’s performance.

  Grinder

   Grinder is an open-source JVM load testing framework that facilitates distributed testing using many load injectors. It supports a Jython scripting engine for executing test scripts, and HTTP tests can be managed through an HTTP proxy. According to the project website, Grinder’s main target users are “people who understand the code they are testing—Grinder is not just a ‘black box’ test with a set of associated response times. Because the test process can be coded—rather than simply scripted—programmers can test the internal layers of an application, not just response times through the user interface.”

  Pylot

   Pylot is an open-source tool for testing the performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, establishing benchmarks, analysis, and system tuning. Pylot generates concurrent loads (HTTP Requests), verifies server responses, and generates reports with metrics. Test suites can be executed and monitored via GUI or shell/console.

  Web Capacity Analysis Tool (WCAT)

This is a lightweight load-generation utility that not only reproduces scripted HTTP requests to a web server (or load-balanced server farm) but also collects performance statistics for later analysis. WCAT is a multi-threaded application and supports controlling multiple load test clients from a single source, allowing you to simulate thousands of concurrent users. The utility leverages your old machines as test clients, where each test client can in turn spawn multiple virtual clients (the maximum number depends on the client machine’s network adapter and other hardware).

You can choose whether to use HTTP 1.0 or HTTP 1.1 requests, and whether to use SSL. Also, if the test scenario requires it, you can use basic or NTLM authentication scripted to access restricted parts of the site. (If your site uses cookies, forms, or session-based authentication, you can create the correct GET or POST requests to authenticate test users.) WCAT also manages any cookies your site may set, so configuration files and session information are permanently preserved.

 

 

fwptt

 

fwptt is also a tool for load testing web applications. It can record general requests as well as Ajax requests. It can be used to test ASP.NET, JSP, PHP, or other web applications.

JCrawler

 

JCrawler is an open-source (CPL) stress testing tool for web applications. As its name suggests, you can tell it’s a Java-based tool that works like a web crawler. Simply feed it a few URLs, and it starts crawling, generating load on your web application in a unique way. This tool can be used to test the load that search engines might impose on your site. Of course, it has another function — you can build your site map and, with one more click, automatically submit the Sitemap to the top 5 search engines!

Apache JMeter

Apache JMeter is a 100% pure Java desktop application designed specifically for running load and server performance tests. Originally designed for Web/HTTP testing, it has since been extended to support a wide variety of test modules. It ships with modules for HTTP and SQL databases (using JDBC). It can be used to test the performance of servers with static or dynamic databases, to simulate heavy loads on a server or network system to gauge its resilience, or to analyze overall performance under different load types. It also provides a customizable interface for data display, test synchronization, and test creation and execution.

 

 

   

 

Siege

   Siege is a stress testing and benchmarking tool designed for web developers to evaluate how well an application performs under pressure. It can simulate concurrent access by multiple users to a web site based on configuration, record the response time for each user’s entire request process, and repeat the test under a certain number of concurrent accesses. Siege supports basic authentication, cookies, HTTP, and HTTPS protocols.

  http_load

  http_load runs in a parallel multiplexing mode to test the throughput and load of a web server. Unlike most stress testing tools, it can run as a single process and generally won’t overwhelm the client machine. It can also test HTTPS-based website requests.

  Web Polygraph

  Web Polygraph is also a tool for testing web performance. This tool serves as a standard benchmarking tool for many companies, including Microsoft, which uses it as a benchmark when analyzing its own software performance. Many job postings for testers explicitly note that proficiency in this testing tool is required.

  OpenSTA

OpenSTA is a free, open-source web performance testing tool capable of recording highly powerful script processes and executing performance tests. For instance, it can simulate multiple different users simultaneously logging into a website under test. It also allows recorded test scripts to be edited according to specified syntax. After recording a test script, you can edit it to analyze specific performance metrics. Its rich graphical test results significantly enhance the readability of test reports. Built on a CORBA architecture, OpenSTA works by virtualizing a proxy and using its proprietary script control language to record all HTTP/Straffic passing through that proxy. System performance is analyzed by examining various performance metrics collected by OpenSTA’s performance metric collectors along with the HTTP data.

Leave a Comment

Your email address will not be published.