logo

Raw Load Tester v1.0

The RawLoadTester application is a free Open Source tool to load test websites. It does not have many features but it is useful in situations where using a more comprehensive load testing solution (e.g., Apache Flood) is not practical.

The application calls the URL you select as many times as you choose and tells you how long it took the server to respond. It writes some additional runtime details to the PHP log file so you can optionally do more granular analysis afterwards. Although the server processes most of the statistics, all URL requests come from the browser. You can run as many browsers and workstations simultaneously as you want.

It is possible that non-programers can install and use this application (e.g., junior testers); but, these instructions and the program itself assume the installer and user are familiar with their webserver configuration.

Requirements

In general, if you can load one page onto a PHP host, then you can use this application to test your URL.

  1. A JavaScript enabled web browser
  2. PHP on which to host the load testing page (free)
  3. Permission to load test the target URL

IMPORTANT: Only load test URLs that you are authorized to load test! If you do not own the server and do not have permission to load test the application on the server, do NOT load test it.

Package Download

RawLoadTester_v1-0.zip

How To Use

The main part of the application is the RawLoadTester.php page. You should host this page in an envirionment that runs PHP scripts, for example a web server that runs PHP pages.

The RawLoadTester.php page looks like this when you first bring it up in your browser after installing it...

screenshot of application

The IP address of the user calling the page appears in the page header and also in log entries during the test runs. The default URL is just the URL to the page itself. The Test Counter has a default value of ZERO, but you need to make that a non-ZERO number before starting your test.

As an example, lets run a simple test with 50 iterations on the localhost installation for which we are taking screenshots. First, we set the URL to the license.html page. Next, we put the value 50 into the Test Counter field. We don't change the default values for Time Spread and Avoid Cache. The page would then look like this...

screenshot of application

After we click the "Start the Test" button, the screen becomes red and we see the URL page load repeatedly while the test runs.

screenshot of application

Once the test is complete, we see a summary of our results at the top of the page.

screenshot of application

NOTE: Elapsed time is measured in whole seconds. The average elapsed time is computed as an average of those whole seconds, so there can be fractional results for the Average interval but not for the Minimum and Maximum intervals. For example, if the response time was less than a second, you will see 0 seconds as the Minimum interval value..

Parameter Summary

Log File Entries

The script writes to your php error log file as it runs. All entries start with the text "RAWLOADTESTv1.0". The first entry will have a value of "[STARTRUN]", the last entry will have a value of "[DONE]", and all the lines between have a label of "[TESTING]". Each entry has some time and iteration details, along with the URL and IP address of the user that started the test.

Tips

Saturation can be a complex topic involving considerations such as how many workstations will be running the script and how many windows will be running in each workstation. Consider using the Time Spread parameter when simultaneously using multiple windows and/or multiple workstations. You can validate performance criteria worded such as "System shall service X users within Y hours." If the test does not finish in Y hours given X iterations then the system can be assumed to have failed that performance criteria. You can check the Maximum interval statistic to see if you exceeded a response time requirement on the system.

Keep an eye on the running page to see if you get failures from the server that is responding to the URL requests. Due to javascript limitations, the script does not capture server errors.

If your web application has good error logging, make sure to check the error logs after your load test. If the load test broke your application, you might find some details there.

Other Stuff

If you find this useful, please let me know. Also, if there is enough interest in an IIS/ASP/.NET version of the application I'll post one of those. You can reach me at consulting@room4me.com. Put "RawLoadTester" into the subject line so my spam filter is less likely to toss it before I see it.


Open Source License   |   Room4me.com Software LLC