Elton is an HTTP Benchmark utility with options to be used within an HTTP interface.
Elton is currently available via Docker or by cloning this git repo.
The easiest way to run Elton with an HTTP interface is to use Docker.
docker run -p 8080:3000 emilpriver/elton:v0.0.2
This command runs Elton and exposes port 8080. Elton should now be accessible via http://localhost:8080
.
- Clone this repository using Git.
- Run
cargo build -r
. - Elton can now be run using
./target/release/elton
.
Elton currently exposes 2 endpoints to start and get the status of a test.
curl --location 'localhost:3000/' \\
--header 'Content-Type: application/json' \\
--data '{
"method": "GET", // GET or POST
"tasks": 1000, // Number of tasks to spin up
"seconds": 10, // Test duration
"start_at": "2023-09-17T10:16:34.675Z", // Start at timestamp
"url": "<https://httpbin.org/ip>", // URL to test
"content_type": "application/json", // Content-Type to send POST message using
"body": "test" // POST BODY
}'
The response includes the following JSON:
{
"id": "ee7e44cc-b35e-4752-a94d-32adcb17dfc2", // Test ID
"url": "<https://httpbin.org/ip>",
"method": "get",
"content_type": "application/json",
"status": "PROCESSING",
"body": "test",
"created_at": "2023-09-19 07:44:12",
"finished_at": null
}
You can fetch the result from a test by calling /{test_id}
.
curl --location --request GET 'localhost:3000/ee7e44cc-b35e-4752-a94d-32adcb17dfc2'
This response returns:
{
"id": "d9dbf273-0b5d-42bb-8be5-eaef2513a03a",
"url": "<https://httpbin.org/ip>",
"method": "get",
"content_type": "application/json",
"status": "PROCESSING",
"body": "test",
"created_at": "2023-09-19 07:46:47",
"finished_at": null,
"results": [
{
"id": "173e17f5-8909-4940-9182-a0ed2f434133",
"test_id": "d9dbf273-0b5d-42bb-8be5-eaef2513a03a",
"second": 0, // The second this amount of requests was sent at.
"requests": 1639, // Number of requests done this second
"error_codes": "Socket Hungup" // If there is an error, the error codes are stored here
}
]
}