Drill is a HTTP load testing application written in Rust. The main goal for this project is to build a really lightweight tool as alternative to other that require JVM and other stuff.
You can write benchmark files, in YAML format, describing all the stuff you want to test.
It was inspired by Ansible syntax because it is really easy to use and extend.
Key Features
- Concurrency: run your benchmarks choosing the number of concurrent iterations.
- Multi iterations: specify the number of iterations you want to run the benchmark.
- Ramp-up: specify the amount of time, in seconds, that it will take drill to start all iterations.
- Delay: introduce controlled delay between requests. Example: delay.yml
- Dynamic urls: execute requests with dynamic interpolations in the url, like /api/users/{{ item }}
- Dynamic headers: execute requests with dynamic headers. Example: headers.yml
- Interpolate environment variables: set environment variables, like /api/users/{{ EDITOR }}
- Executions: execute remote commands with test plan data.
- Assertions: assert values during the test plan. Example: iterations.yml
- Request dependencies: create dependencies between requests with assign and url interpolations.
- Split files: organize your benchmarks in multiple files and include them.
- CSV support: read CSV files and build N requests fill dynamic interpolations with CSV data.
- HTTP methods: build request with different http methods like GET, POST, PUT, PATCH, HEAD or DELETE.
- Cookie support: create benchmarks with sessions because cookies are propagates between requests.
- Stats: get nice statistics about all the requests. Example: cookies.yml
- Thresholds: compare the current benchmark performance against a stored one session and fail if a threshold is exceeded.
- Tags: specify test plan items by tags.
Website: github.com/fcsonline/drill
Support:
Developer: Ferran Basora
License: GNU General Public License v3.0
Drill is written in Rust. Learn Rust with our recommended free books and free tutorials
Related Software
| Web Server Benchmarking Tools | |
|---|---|
| Locust | Easy to use, scriptable and scalable performance testing tool |
| Apache JMeter | Load testing and performance measurement application |
| k6 | Modern load testing tool for developers and testers in the DevOps era |
| wrk | Modern HTTP benchmarking tool |
| Siege | HTTP regression testing and benchmarking utility |
| oha | CLI HTTP load generator with a real-time terminal user interface |
| hey | CLI load generator for benchmarking web applications and HTTP services |
| AutoCannon | Fast HTTP/1.1 benchmarking tool |
| Tsung | Multi-protocol distributed load testing tool |
| bombardier | Uses fasthttp instead of Go’s default http library, |
| ApacheBench | Apache (and other web servers) benchmark tool |
| Cassowary | Modern HTTP/S, intuitive & cross-platform load testing tool built in Go |
| Drill | HTTP load testing application written in Rust |
| Nighthawk | Layer 7 performance-characterisation and load-testing tool |
| httperf | HTTP load generator |
| FunkLoad | Web testing tool in the same spirit as Perl's WWW::Mechanize |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.