Web測試和負載模擬工具 curl-loader
curl-loader 是一個用C語言編寫的Web應用測試和模擬負載工具,可模擬成千上萬的客戶端請求,并且每個請求來自不同的IP地址,支持用戶認證、登錄等Web交換過程。
- 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 and PUT, 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 supported;
- 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. The logfile is automatically rewinded, when reaching configurable size preventing disk crashes;
- Logging of responses (headers and bodies) to files.
- Pre-cooked batch configuration (test plan) examples;
- Load Status GUI at console and with output to file;
- Status and statistics for each virtual client, which are logged to file;
Here is a screenshot:
