WebLoad 4.1.3 README
Linas Vepstas (linas@linas.org)
14 May 1999
Breif Overview of the WebLoad Tool Suite.
WebLoad is a collection of tools for testing and measuring web
applications and web servers. The tools can be used to record
and playback HTTP conversations between a web browser and a web
server, make timing measurements, and gather statistics. The
true power of this tool lies in its stress-test and stress-measurement
abilities: It can simulate a large number of users accessing
a web site in structured yet randomized sessions.
WebLoad has been loosely derived from the public-domain WebStone
package, but has seen a major redesign since then, with the addition
numerous features and enhancements.
Features include:
- Record and playback of URL's, including ...
- Ability to handle generic HTTP traffic, including
XML-based prototocls such as OFX. Custom HTTP headers
and bodies may be specified.
- Ability to trace/record through multiple servers,
capturing entire web surfing sessions over many sites.
- Can act as man-in-the-middle, gathering detailed traces
of HTTP traffic to debug server, browser or proxy bugs.
- Checksum generation and validation to detect mangled, missing
or misdelivered pages.
- Adjustable timeout to detect non-responding servers.
- Logon password support, allowing websites
that require customer registration and logon to be traced.
- Autologoff when error condition is detected, allowing
a logon id to be reused, thus avoiding a manual reset
or logon timeout.
- Support for cookies and handles embedded in URL's.
- Limited ability to make generic text and key-value
substitutions in HTTP header and body.
- Support for HTTP/1.0 and HTTP/1.1 protocols, including
KeepAlive and persistant connections.
- Support for SSLv2 and SSLv3 encryption.
- Works through Socks & Proxy firewalls.
- Rudimentary support for JavaScript, Frames, Layers, base href
tags. This allows more complex sites to be correctly traversed.
- Automatic followup of redirects (302 and 304 return codes).
- Works with password-protected sites.
- Ability to emulate a real user through a variety of features,
such as ...
- Emulation of the browser image (GIF) cache; cached images,
and audio/video clips are not refetched.
- Fixed or randomly distributed "think time" to simulate a user
pausing to read a web page. Think time may be assigned
per page, or an average declared for the session.
Exponential and gaussian distributions supported.
- Blocks of URL's can be assigned fractional probabilities
for playback. Thus, complex user behaviours, such as visting
only part of a web site only some of the time can be emulated.
- Ability to gather timestamps and performance statistics,
including ...
- Ability to time individual events, as well as gether summary
statistics for entire sessions. Features include:
- Ability to timestamp a user session, including socket connect,
SSL negotiation, socket read and write times, elapsed delay times.
Timestamps can be obtained during record and during playback.
- Automatic collection of statistics, including average, min, max
and standard deviations.
- Stats may be reported in detail, in blocks, and as a summary.
For example, the standard deviation for socket connection delay
for a particular URL can be obtained, or the average connect
time for a block of URL's, or the average end-to-end time
over all pages for the entire session.
- Ability to stress load a server and gather stress statistics
through multi-user emulation. Features include ...
- Load Rampup. Startup of clients staggered in blocks,
avoiding initialization bottlenecks, as well as
lockstep servicing, "sloshing" and other mutli-user
measurement pitfalls.
- Statistics gathering synchronization. This guarentees
that that no statistics are gathered during the rampup
and rampdown phases.
- Statistics gathering checkpointing. Statistics are gathered
and presented only for whole sessions, thus excluding
partially begun or paritally completed sessions that occur
at rampup and rampdown. Stats are "rolled back" to
last complete session.
- Variety of scripts to extract, summarize and manipulate
multi-user run reports, including CPU usage, queue lengths,
page and session times.
- Multi-OS support: AIX, Linux, 95 and NT.
- Ports to other Unixes should be straightforward.
- Multiuser support, stress-loading and tools not
available on 95/NT due to OS limitations.
(Multiuser support requires shared memory. Timeouts require
alarms, neither are supported on NT/95. SSL support requires
encryption, NT licensing is restrictive/prohibitive.
NT/95 TCP/IP stack is slowww, shaky and prone to frequent hangs,
crashes.)