Assignment 4 - Installation and Testing of Web Performance Trainer
INLS 183 - Distributed Systems (new window)
October 14, 2002
Send comments to: bhayes@email.unc.edu

Assignments Index Page
nbsp;

Introduction / Background

I work for the Health Sciences Library (HSL). The IT Services department is in the process of bringing up 2 duplicate web servers to replace an older server in hosting the Library's 4 websites. One of these websites, NC Health Info (project page), is a cooperative project between the National Library of Medicine's MEDLINEPlus team, HSL and SILS. It is a fairly high profile project and the site is expected to get a tremendous amount of traffic when it is released to the public in a few months.

In anticipation of an unprecendented load on our new web servers and to generally assess the servers' ability to handle traffic on our 4 sites, my classmate and ITS colleague, Kevin Lanning, and I are identifying and installing performance testing software on Linux laptops. Per the recommendation of others who manage high traffic web sites (i.e. Ibiblio staff), we will be using more than one testing package in combination to test the servers so we can test a wider range of server functionality than we could with a single package. So far, we have identified several testing packages through Freshmeat.net. Kevin has installed an oepn source (GNU) package called Siege and I have obtained a trial license for and installed a comparabe vendor product called Web Performance Trainer. We will be working together in the coming week(s) to set up various test profiles which we will apply to the servers.

Use of laptops to run the testing software will allow us to do the testing on the same network switch as the new web servers use and thereby prevent putting this additional traffic onto the larger campus network. Also, Kevin has contacted IT security and UNC networking and obtained permission for this testing. Finally, these web server performance testing and analysis tools and the experience we gain using them will be invaluable for future web site / server testing projects.

Software Overview

Web Performance Trainer (WPT) is a load, stress and performance testing tool for http / https servers. It enables web developers to see how their site code and any component database transactions will stand up under various usage loads that is may experience via the internet when put into production. The fully licensed version of WPT can simulate 500 concurrent users/ browser sessions hitting a server; the trial version I am installing is limited to simulating 20 concurrent users / browser sessions. The load (e.g. hits per hour) placed on a server / site by WPT is a product of the number of simulated users, the number of site URLs contained in the test scenario and the duration of the test.

A web site interaction test scenario or "business case" is created by recording a real interaction, including the "think time" a user spends filling out a form or ready a information page, with the site to be tested. These business cases can be edited, copied, pasted and combined into a "load profile" which can then be played back against the target web site as a "performance test". In playing back a simple (single business case) load profile, the tester can configure various parameters for the test including network speed / bandwidth, the number of initial simulated users executing the business case interaction, a rate of increase in the number of simulated users over time, whether and how long to wait between repeats of the business case, random starts of the profile among the simulated users, and the duration of the test in minutes, hours or days. Configurable parameters such as concurrent simulated users enable shorter tests of page loading speeds, longer tests of the site's ability to handle stress over time, as well as maximum load tests to find the breaking point of the server in terms of concurrent users.

More complex and realistic testing can be accomplished by creating load profiles consisting of multiple business cases, each with different usage settings / characteristics (e.g. site interactions, bandwidth, concurrent users, duration, etc.). For example, you can have 20% of the simulated users filling out a request form, while 60% of the users are looking at an informational page and the remaining 20% are doing searches. The flexible configurability enables the tester to establish load profiles that realistically simulate existing or new load patterns on their server / site.

Finally, WPT provides the ability to view and analyze (via reports and graphs) test data at the transaction/load profile, web page or individual URL level. WPT analysis reports provide answers to key questions about website performance, such as "What is the slowest page on the website?", "What was the longest load time for a specific page?" and "How many users can the website handle?"

Web Performance Trainer is a product of Web Performance, Inc, a Raleigh, NC -based company founded in 1999. The current release of the product which I installed is Web Performance Trainer 2.5. It runs on Linux, Solaris, Windows NT, Windows 2000, and Windows XP.

Installation and Configuration Narrative

In order to install this proprietary software, I obtained a 20 concurrent user trial license from Web Performance, Inc. via email by submitting the trial registration form on their web site. I then downloaded the software (wptl2_5.bin) from http://webperformanceinc.com/download. I downloaded both license key and software into a /tmp directory in my home directory on the linux laptop computer that will serve as one of the performance test machines. I also installed the software on my home computer so it can serve as a remote test machine.

Installation instructions for this software are provided on the vendor site at http://webperformance.com/support/manual/installation.html. This software uses a graphical installer and cannot be installed solely via the command line like RPMs or source tarballs we've installed previously. My WPT install logs for the laptop and for my home computer therefore show my activities leading up to the point that the graphic installer loads.

The first step for installing this software is to run the installer. The documentation did not give any detail on how to do this so this step took a while and some hints on the command line sytax from the Web Performance Trainer support desk to complete. After adding execute permissions (chmod 755) to the wptl2_5.bin file, I successfully ran the installer with the following command:

$ ./wptl2_5.bin

I could also have run the installer via the RUN utility in the GNOME or KDE graphic desktops, but I was interested in what I would see when running at the command line. When prompted by the graphical installer, I elected to install the WPT program in /user/local/WPTrainer2_5. In order to install to this directory, I had to become root (su -) BEFORE running the installer since there was not way to sudo the installation once the installer launched. I elected to install the symbolic links for running the WPT program in /home/barrie/WPTrain2_5.

After the program was installed, I was able to locate the command and permissions details regarding installation missing from the online documenation in the install.txt file intalled with the program. This file also indicated that the browser configured to be used by WPT needed to be in the PATH of the user (/usr/local/netscape) and that the safest place to install the WPT program on Linux / Unix was in the user's home directory since root permissions were need to install elsewhere. The file also indicated no known issues with Linux isntallations.

For both WPT installations, I elected to install the complete package which includes a GUI Controller for recording, editing and playing back load tests and a Remote Engine for generating load tests.

Once the installation completed successfully, I exited out of the root shell and cded to /home/barrie/WPTrain2_5 to start the program. Upon startup, the program prompts for the location of the license key. To load successfully, this license key file had to be in the same directory as the executable i.e. /usr/local/WPTrainer2_5. Also essential to running the program is that XWindows be running to provide the support for the graphic interface used by this software. So the commands required to get the program running are:

$ startx (then open a terminal window for command line start; could also have used RUN command within the Gnome GUI interface)

$ sudo ./Web_Performance_Trainer

NOTE: due to the install location, this program must always be run as root (sudo) or I would need to apply a "sticky bit" to the executable file (and perhaps change permissions on /usr/local/) to allow me to run it as a regular user---I need to investigate this further.

Once the program loads the first time, it provides tabs to configure an available (on the machine) browser for use by WPT. This includes selecting the browser to use and whether to automate various tasks related to browser use that must be done to run WPT more effectively:
- auto launch the browser when recording - selected
- auto configure the browser (manual proxy settings) when recording - selected
- clear cookies before recording - selected
- clear cache before recording - selected
- inherit browser proxy settings - selected.

Other browser configuration selections included:
- which ports the browser was to use when recording - I kept the defaults of 8081 for http and 8082 for https
- whether to record gif and html retrieved during testing - no, don't need to analyze page content, just http headers returned
- whether to test sites via a proxy server - not applicable in my case for either computer.

After configuring the Netscape as my WPT browser, the WPT program testing screen loaded and I clicked on the Record button to record a brief test business case. Since I configured the browser (Netscape) to launch when recording, Netscape loaded and brought the local wptrainer.html file that confirms that the browser proxy setting are properly configured to user WPT. I then pointed my browser at my home page to recorded a very brief test case. I stopped recording and saved the file (testHP.wpt) to the WPTrain2_5 directory in my home page.

Next, I as able to create a load profile with that test "business case" and rerun it after setting some parameters like concurrent users (2), duration (1 minute), increase users by 1 every 10 second. The program definately recorded data and seemed to rerun the recorded interaction successfully, however the statistical reports and graphs indicated "no data" so there is something amiss with the setup. I am also getting a warning when I run a load profile that "the configured duration and modem speed will not allow some or all the business cases to complete". I ran the test on my home computer which has a dynamic IP address and high security (ports 8081 and 8082 were not explicitly opened for incoming traffic) so I will need to do some additional investigation and configuration to make this testing software fully functional on this machine. Sufficient data seems not to be received back from the site tested with which to generate meanful analysis reports. I'm hopefully most of the way there; the program does load and run. I'll be continuing to work with this program as we prepare to run real tests against our web servers over the next week or 2 and I'll update this page as the kinks are resolved.

Instructions for Use

The Web Performance Trainer program has a graphical interface with fairly easy to understand buttons (with helpful rollover button hints). In using the program to set up and run a performance test, the first step is to begin recording a business case by clicking the Start/Record button. If you've configured the program to launch browser when recording (recommended) your selected browser loads a page confirming that the program is running properly. which basically consists of a selected (typical) sequence of interactions (browsing/searching/reading/completing a form) on the test target web site. This interaction sequence is called a business case and when you've recorded the interactions you want, you stop recording by clicking the stop button. Multiple business cases can be created in the smae way.

The next step is to create 1 or more load profiles for use in testing the target site. To create a load profile, just select the load profile tab and select from the list of available business case those you wish to be a part of a given load profile..this can be 1 or more. Then set other parameters for the load profile such as number of conurrent users to start with, number by which to increment them (if at all), the duration of the test and the delay between repeated runs of the profile.

When running tests, the capacity of the computer running the test is a critical factor. Running the tests, particularly with multiple concurrent users configured, is a CPU and memory intensive operation so no background processes should be running while WPT is working. WPT will monitor CPU usage to ensure it does not overload the computer and will stop adding new simulated users if the CPU load get too high (80%).

Once tests are run and their corresponding data files saved, select the analysis and graph tabs to get analysis reports and graphs of the statistical data gathered from the load test.

Functionality
As described above, the program is successfully installed and loads properly. It seems to successfully record business cases and create load profiles. However, since the statistical reportingn and graphinc functions are reporting "no data" and I'm getting a warning regarding my network speed and durations settings preventing cases from running successfully, I need to investigate further and possibly do some additional configuration, particularly on my home computer, to get this software fully functional as a testing tool.
nbsp; Send comments to: bhayes@email.unc.edu