curl-loader
curl-loader is an open-source software performance testing
tool written in the C programming language.
curl-loader is capable of simulating application behavior of
hundreds of thousands of HTTP/HTTPS and FTP/FTPS clients, each with its
own source IP-address. Unlike other tools, curl-loader is using
real C-written client protocol stacks, namely, HTTP and FTP stacks of
libcurl and TLS/SSL of openssl, and simulates user behavior with
support for login and authentication flavors.
The goal of the project is to deliver a powerful and flexible
open-source testing solution as a real alternative to Spirent Avalanche
and IXIA IxLoad.
The tool is useful for performance loading of various
application services, for testing web and ftp servers and traffic
generation. Activities of each virtual client are logged and collected
statistics includes information about resolving, connection
establishment, sending of requests, receiving responses, headers and
data received/sent, errors from network, TLS/SSL and application (HTTP,
FTP) level events and errors.
The tool can be easily extended to generate sftp, telnet,
tftp, ldap, ssh, scp etc other application protocols,
supported by the libcurl library.
Features include:
- Virtual clients number. The tools runs depending on your
hardware and scenario 5,000-25,000 and more simultaneously loading
clients, all from a single curl-loader process. Actual number of
clients may be several times higher, and is limited mainly by the
system memory. Each client performs loading from its own source
IP-address or, as an option, all clients share the same IP-address
- Rampup of the virtual clients number at loading start in
either automatic or manual mode
- IPv4 and IPv6 addresses and URIs
- HTTP 1.1. GET, POST, PUT, DELETE, HEAD including file
upload operations
- HTTP user authentication login with POST or GET+POST
methods. Unique
configurable username and password for each virtual client as well as
configurable posted string (post-forms) are the options. Another option
is loading of users with credentials from a tokens text file
- HTTP POST/GET forms with up to 16 tokens filled from a
tokens text file
- HTTP
user logoff with POST, GET+POST, or GET (cookies)
- POST logoff with
configurable posted string (post-forms)
- HTTP
multipart form data POST-ing as in RFC1867
- HTTP
Web and Proxy Authentication (HTTP 401 and 407 responses) with Basic,
Digest (RFC2617) and NTLM
- HTTP
3xx redirections with unlimited number of redirections
- HTTP
cookies and DNS caches
- FTP
passive and active, FTP
upload
- Full customization of client request HTTP/FTP headers
- Transfer limit rate for each client download or upload
operation on a per url bases
- URL
fetching probability
- TCP connections reuse or re-establishment on a per URL bases
- Unlimited configurable number of URLs. Mixing of HTTP,
HTTPS, FTP and FTPS urls in a
single batch (test plan) configuration
- Connection establishment timers for each URL
- URL
completion timers monitoring and enforcement for each client
- Inter/after URL "sleeping" timers, including random
timers taken from a configurable interval
- Logfile with tracing activities for each virtual client
- Logging of responses (headers and bodies) to files
- Pre-cooked batch configuration (test plan) examples
- Load Status at console and with output to file
- Status and statistics for each virtual client which are
logged to file;

Return
to Web Server Performance Testing Tools Home Page
Last Updated Saturday, November 17 2012 @ 04:43 AM EST |