{"id":21722300,"url":"https://github.com/ecoapm/loadtesttoolbox","last_synced_at":"2025-04-09T11:07:14.260Z","repository":{"id":39883853,"uuid":"44108048","full_name":"ecoAPM/LoadTestToolbox","owner":"ecoAPM","description":"Lightweight tools for load testing web applications, written in C#","archived":false,"fork":false,"pushed_at":"2025-03-22T14:52:37.000Z","size":218,"stargazers_count":140,"open_issues_count":1,"forks_count":29,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-02T10:09:08.031Z","etag":null,"topics":["chart","cli","hacktoberfest","http","load-testing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecoAPM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-12T13:08:25.000Z","updated_at":"2025-03-22T14:52:41.000Z","dependencies_parsed_at":"2024-02-18T19:26:47.495Z","dependency_job_id":"6d962643-3b40-4ba8-bc62-84f5dd3d5b2c","html_url":"https://github.com/ecoAPM/LoadTestToolbox","commit_stats":{"total_commits":132,"total_committers":9,"mean_commits":"14.666666666666666","dds":0.4242424242424242,"last_synced_commit":"e5ef3b1f57a105cce2fbb36e778093a6fdba92fc"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecoAPM%2FLoadTestToolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecoAPM%2FLoadTestToolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecoAPM%2FLoadTestToolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecoAPM%2FLoadTestToolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecoAPM","download_url":"https://codeload.github.com/ecoAPM/LoadTestToolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248027407,"owners_count":21035594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","cli","hacktoberfest","http","load-testing"],"created_at":"2024-11-26T02:23:21.155Z","updated_at":"2025-04-09T11:07:14.240Z","avatar_url":"https://github.com/ecoAPM.png","language":"C#","readme":"# LoadTestToolbox\n\nLightweight tools for load testing web applications, written in C#\n\n[![NuGet version](https://img.shields.io/nuget/v/LoadTestToolbox?logo=nuget\u0026label=Install)](https://nuget.org/packages/LoadTestToolbox)\n[![CI](https://github.com/ecoAPM/LoadTestToolbox/actions/workflows/CI.yml/badge.svg)](https://github.com/ecoAPM/LoadTestToolbox/actions/workflows/CI.yml)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=ecoAPM_LoadTestToolbox\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=ecoAPM_LoadTestToolbox)\n\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=ecoAPM_LoadTestToolbox\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=ecoAPM_LoadTestToolbox)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=ecoAPM_LoadTestToolbox\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=ecoAPM_LoadTestToolbox)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=ecoAPM_LoadTestToolbox\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=ecoAPM_LoadTestToolbox)\n\n**These tools should only be used on applications that you own or have permission to test against**\n\n## Installation\n\n1. Download the latest release for your operating system and architecture\n1. Extract the archive to the directory of your choosing\n\n### Install as a .NET Global Tool\n\n`~$ dotnet tool install --global LoadTestToolbox` (requires .NET SDK)\n\n## Usage\n\nFor the most accurate results, run LoadTestToolbox on a different machine (ideally on the same LAN as) than the one being tested.\n\n`~$ ltt \u003ctool\u003e [options]`\n\n## Tools\n\nLoadTestToolbox currently consists of three tools:\n- `drill`\n- `hammer`\n- `nailgun`\n\n### Drill\n\nDrill helps measure long-term stability by constantly requesting a page at consistent intervals over a more extended period of time.\n\nExample:\n\n   `~$ ltt drill --url http://192.168.1.100/ --rps 500 --duration 10 --filename chart.png`\n\nIn the above command, LoadTestToolbox will make 500 requests per second (at consistent 20ms intervals) for 10 seconds.\n\nUpon completion, a Cartesian chart is output to the specified file, showing each request and its response time.\n\n### Hammer\n\nHammer helps measure load spikes by \"hammering\" a specified URL with a given range of simultaneous requests, and returns the average response time for each.\n\nExample:\n\n`~$ ltt hammer --url http://192.168.1.100/ --min 1 --max 100 --filename chart.png`\n\nThe above command will make 1 simultaneous request, then 2, then 3, and so forth, up to 100.\n\n\u003e The hammer command is smart about orders of magnitude, so from 10 to 100, it will step up 10 requests at a time (10, 20, 30, etc.); step 100 for 100 to 1000 simultaneous requests (100, 200, ..., 1000); and so forth.\n\nA Cartesian chart showing the average response time for each set of requests is output to the specified file upon completion.\n\n### Nailgun\n\nNailgun shows how a specified URL handles a single large influx of requests.\n\n`~$ ltt nailgun --url http://192.168.1.100/ --requests 1000 --filename chart.png`\n\nThe above command sends 1000 requests all at once, and records the response times for each.\n\nA Cartesian chart showing how the URL responded to each of the requests is output to the specified file upon completion.\n\n## Options\n\n### Required for all requests\n\n- `-u`/`--url`: the URL to send to\n- `-f`/`--filename`: the file to output the chart to\n\n### Optional for any request\n\n- `-m`/`--method`: the HTTP method to send (default: `GET`)\n- `-H`/`--header`: the HTTP header(s) to send (default: none)\n- `-b`/`--body`: the HTTP body to send (default: none)\n\n### Required for `drill`\n\n- `-r`/`--rps`: the number of requests per second to send\n- `-d`/`--duration`: the number of seconds to send requests for\n\n### Required for `hammer`\n\n- `--min`: the minimum number of requests to send\n- `--max`: the maximum number of requests to send\n\n### Required for `nailgun`\n\n- `-r`/`--requests` the number of requests to send\n\n## Contributing\n\nPlease be sure to read and follow ecoAPM's [Contribution Guidelines](CONTRIBUTING.md) when submitting issues or pull requests.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecoapm%2Floadtesttoolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecoapm%2Floadtesttoolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecoapm%2Floadtesttoolbox/lists"}