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: