curl-loader

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
curl-loader
Developerscurl-loader, open-source project
Stable release
0.56 / January 10, 2012; 14 years ago (2012-01-10)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux
    TypeSoftware performance testing
    LicenseGPLv2
    Websitecurl-loader.sourceforge.net

    curl-loader is an open-source software performance testing tool written in the C programming language.

    Features

    [edit | edit source]

    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. In contrast to 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 major features are:

    Running up to 2,500–100,000 and more virtual loading clients, all from a single curl-loader process. Actual number of virtual clients may be several times higher being limited mainly by memory. Each virtual client loads traffic from its "personal" source IP-address, or from the "common" IP-address shared by all clients, or from the IP-addresses shared by some clients where a limited set of shared IP-addresses can be used by a batch of clients.

    • 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;

    The goal of curl-loader project is to deliver a powerful and flexible open-source software performance testing client-side solution as a real alternative to Spirent Avalanche and IXIA IxLoad. Curl-loader normally works in pair with nginx or Apache web server as the server-side.

    The tool is developed and maintained by Dr. Robert Iakobashvili and Michael Moser.

    See also

    [edit | edit source]

    References

    [edit | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]