curl-loader – useful tool for performance loading

Last Updated on November 25, 2022

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.

Website: curl-loader.sourceforge.net
Support: FAQ
Developer: Robert Iakobashvili, Michael Moser
License: GNU GPL v2

curl-loader

curl-loader is written in C. Learn C with our recommended free books and free tutorials.

Return to Web Server Performance Testing Tools Home Page


Popular series
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
GamesAwesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series.
Artificial intelligence iconMachine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source.
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Linux Around The WorldLinux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments