No-code, high-performance load testing tool, written in Golang. Ddosify Engine.
1M+
GitHub: https://github.com/getanteon/anteon
✅ Scenario-Based - Create your flow in a JSON file. Without a line of code!
✅ Different Load Types - Test your system's limits across different load types.
✅ Parameterization - Use dynamic variables just like on Postman.
✅ Correlation - Extract variables from earlier phases and pass them on to the following ones.
✅ Test Data - Import test data from CSV and use it in the scenario.
✅ Assertion - Verify that the response matches your expectations.
✅ Success Criteria - Set the success criteria for your test.
✅ Cookies - Pass cookies through steps and set initial cookies if you want.
✅ Widely Used Protocols - Currently supporting HTTP, HTTPS, HTTP/2. Other protocols are on the way.
ddosify is available via Docker, Docker Extension, Homebrew Tap, and downloadable pre-compiled binaries from the releases page for macOS, Linux and Windows. For auto-completion, see: Ddosify Completions.
docker run -it --rm ddosify/ddosify
Run Ddosify open-source on Docker Desktop with Ddosify Docker extension. More: https://hub.docker.com/extensions/ddosify/ddosify-docker-extension
brew install ddosify/tap/ddosify
ddosify_amd64 to ddosify_arm64 or ddosify_armv6.# For Redhat based (Fedora, CentOS, RHEL, etc.)
rpm -i https://github.com/ddosify/ddosify/releases/download/v1.0.6/ddosify_amd64.rpm
# For Debian based (Ubuntu, Linux Mint, etc.)
wget https://github.com/ddosify/ddosify/releases/download/v1.0.6/ddosify_amd64.deb
dpkg -i ddosify_amd64.deb
# For Alpine
wget https://github.com/ddosify/ddosify/releases/download/v1.0.6/ddosify_amd64.apk
apk add --allow-untrusted ddosify_amd64.apk
# For FreeBSD
pkg install ddosify
ddosify_x.x.x_windows_amd64.zipddosify_x.x.x_windows_amd64.\ddosify.exe -t https://getanteon.com
/usr/local/bin.ddosify.curl and sudocurl -sSfL https://raw.githubusercontent.com/getanteon/anteon/master/scripts/install.sh | sh
Minimum supported Go version is 1.18
go install -v go.ddosify.com/ddosify@latest
This section aims to show you how to use Ddosify without deep dive into its details easily.
ddosify -t https://getanteon.com
The above command runs a load test with the default value that is 100 requests in 10 seconds.
ddosify -t https://getanteon.com -n 1000 -d 20 -m PUT -T 7 -P http://proxy_server.com:80
Ddosify sends a total of 1000 PUT requests to https://getanteon.com over proxy http://proxy_server.com:80 in 20 seconds with a timeout of 7 seconds per request.
ddosify -t https://getanteon.com -o stdout-json | jq .avg_duration
Ddosify outputs the result in JSON format. Then jq (or any other command-line JSON processor) fetches the avg_duration. The rest depends on your CI/CD flow logic.
ddosify -config config_examples/config.json
Ddosify first sends HTTP/2 POST request to https://getanteon.com/endpoint_1 using basic auth credentials test_user:12345 over proxy http://proxy_host.com:proxy_port and with a timeout of 3 seconds. Once the response is received, HTTPS GET request will be sent to https://getanteon.com/endpoint_2 along with the payload included in config_examples/payload.txt file with a timeout of 2 seconds. This flow will be repeated 20 times in 5 seconds and response will be written to stdout.
ddosify -t https://getanteon.com/{{_randomInt}} -d 10 -n 100 -h 'User-Agent: {{_randomUserAgent}}' -b '{"city": "{{_randomCity}}"}'
Ddosify sends a total of 100 GET requests to https://getanteon.com/{{_randomInt}} in 10 seconds. {{_randomInt}} path generates random integers between 1 and 1000 in every request. Dynamic variables can be used in URL, headers, payload (body) and basic authentication. In this example, Ddosify generates a random user agent in the header and a random city in the body. The full list of the dynamic variables can be found in the docs.
ddosify -config ddosify_config_correlation.json
Ddosify allows you to specify variables at the global level and use them throughout the scenario, as well as extract variables from previous steps and inject them to the next steps in each iteration individually. You can inject those variables in requests url, headers and payload(body). The example config can be found in correlation-config-example.
ddosify -config ddosify_data_csv.json
Ddosify allows you to load test data from a file, tag specific columns for later use. You can inject those variables in requests url, headers and payload(body). The example config can be found in test-data-example.
You can configure your load test by the CLI options or a config file. Config file supports more features than the CLI. For example, you can't create a scenario-based load test with CLI options.
ddosify [FLAG]
| Flag | Description | Type | Default | Required? |
|---|---|---|---|---|
-t | Target website URL. Example: https://getanteon.com | string | - | Yes |
-n | Total iteration count | int | 100 | No |
-d | Test duration in seconds. | int | 10 | No |
-m | Request method. Available methods for HTTP(s) are GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS | string | GET | No |
-b | The payload of the network packet. AKA body for the HTTP. | string | - | No |
-a | Basic authentication. Usage: -a username:password | string | - | No |
-h | Headers of the request. You can provide multiple headers with multiple -h flag. Usage: -h 'Accept: text/html' | string | - | No |
-T | Timeout of the request in seconds. | int | 5 | No |
-P | Proxy address as host:port. -P 'http://user:pass@proxy_host.com:port' | string | - | No |
-o | Test result output destination. Supported outputs are [stdout, stdout-json] Other output types will be added. | string | stdout | No |
-l | Type of the load test. Ddosify supports 3 load types. | string | linear | No |
--config | Config File of the load test. | string | - | No |
--version | Prints version, git commit, built date (utc), go information and quit | - | - | No |
--cert_path | A path to a certificate file (usually called 'cert.pem') | - | - | No |
--cert_key_path | A path to a certificate key file (usually called 'key.pem') | - | - | No |
--debug | Iterates the scenario once and prints curl-like verbose result. Note that this flag overrides json config. | bool | false | No |
ddosify -t https://getanteon.com -l linear
Result:

Note: If the iteration count is too low for the given duration, the test might be finished earlier than you expect.
ddosify -t https://getanteon.com -l incremental
Result:

ddosify -t https://getanteon.com -l waved
Result:

Content type
Image
Digest
sha256:74c6c128b…
Size
6.3 MB
Last updated
almost 3 years ago
docker pull ddosify/ddosifyPulls:
163
Last week