Next
Previous
Contents
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 protocols 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.
- Login password support, allowing websites
that require customer registration and login to be traced.
- Autologoff when error condition is detected, allowing
a login id to be reused, thus avoiding a manual reset
or login 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 SSLv2 and SSLv3 encryption.
- Support for HTTP/1.0 and HTTP/1.1 protocols
- 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 re-fetched.
- Fixed or randomly variable "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.
- Blocks of URL's can be assigned fractional probabilities
for playback. Thus, complex user behaviors, such as visiting
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 gather 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 Ramp-up. Startup of clients staggered in blocks,
avoiding initialization bottlenecks, as well as
lockstep servicing, "sloshing" and other multi-user
measurement pitfalls.
- Statistics gathering synchronization. This guarantees
that that no statistics are gathered during the ramp-up
and ramp-down phases.
- Statistics gathering check-pointing. Statistics are gathered
and presented only for whole sessions, thus excluding
partially begun or partially completed sessions that occur
at ramp-up and ramp-down. 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: most Unix's, Linux, 95 and NT.
- Ports to other Unix's 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/98. SSL support requires
encryption which is available on NT only under restrictive
licenses. In addition, running multiple copies of
webclient
on NT seems to bring out stability problems in the NT/95/98
TCP/IP stack (viz. hangs & crashes).
Next
Previous
Contents