vt-loadtest
4.0.20
dotnet tool install --global vt-loadtest --version 4.0.20
dotnet new tool-manifest
dotnet tool install --local vt-loadtest --version 4.0.20
#tool dotnet:?package=vt-loadtest&version=4.0.20
nuke :add-package vt-loadtest --version 4.0.20
LoadTest
LoadTest is a simple website utility packaged in a .NET tool. It's not fully-featured and is just a toy/tool for myself, but feel free to use it.
- Load test a site using a list of URLs or point to the sitemap.
- Save a list of URLs from the sitemap.
- Archive html from pages.
- Save html source or use --browser to save the JS-rendered page markup.
- Use --browser-errors to capture JS console errors to QA your site.
Install
You need the .NET SDK to run this tool.
dotnet tool install --global vt-loadtest
vt-loadtest --help
Build
You need the .NET SDK to build this project.
./build/build.ps1
LoadTest is built on GitHub Actions and released on NuGet. To release, run the CI workflow manually on main. It builds, pushes to NuGet using trusted publishing, then tags and creates the GitHub release.
To install a local build:
dotnet tool uninstall -g vt-loadtest
./build/installFromArtifacts.ps1
Usage
If running from source, replace vt-loadtest with dotnet run --project src/LoadTest --.
# Load test using a remote sitemap on 2 threads. Works on nested sitemap indexes.
vt-loadtest load --path 'https://developers.google.com/tasks/sitemap.xml' --threads 2
# Load test using a remote sitemap index for 30 seconds and limit the rate of requests.
vt-loadtest load --path 'https://developers.google.com/sitemap.xml' --seconds 30 --delay
# Use a local list of URLs rather than a sitemap. Force at least 20% chance of 404.
vt-loadtest load --path './urls.txt' --chance-404 20
# Load test and also fetch embedded page resources (img, stylesheet, script) found in HTML responses.
# Only resources on the page's own domain are fetched unless allowed via --resource-domains.
vt-loadtest load --path 'https://example.com/sitemap.xml' --resources --resource-domains cdn.example.com
# Crawl a sitemap index and write the URLs to a local file to speed up repeat runs where sitemap retrieval is slow.
vt-loadtest save-urls --path 'https://developers.google.com/sitemap.xml' --output './urls.txt'
# Archive rendered HTML for a site, spidering linked pages and logging JS console errors.
vt-loadtest archive --path 'https://example.com/sitemap.xml' --output './archive' --browser --browser-errors --spider --domain example.com
See vt-loadtest -h for more.
Known issues
URLs are technically case-sensitive, but some file systems aren't (Windows). This means when archiving pages, you may only get one page or the other in the event that the web server treats them as 2 different URLs. This should be rare as nearly identical URLs are bad for SEO.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.20 | 35 | 10/18/2026 |
| 4.0.14 | 157 | 7/9/2026 |
| 4.0.10 | 184 | 2/20/2026 |
| 4.0.6 | 163 | 2/19/2026 |
| 4.0.3 | 152 | 2/18/2026 |
| 3.0.5 | 148 | 2/14/2026 |
| 3.0.2 | 256 | 7/30/2025 |
| 2.0.6 | 405 | 2/8/2024 |
| 2.0.3 | 351 | 11/17/2023 |
| 1.1.3 | 290 | 11/16/2023 |
| 1.1.2 | 296 | 11/5/2023 |
| 1.0.36 | 405 | 10/1/2023 |
| 1.0.35 | 440 | 9/30/2023 |
| 1.0.34 | 404 | 5/1/2023 |
| 1.0.32 | 411 | 4/7/2023 |
| 1.0.31 | 482 | 2/23/2023 |
| 1.0.27 | 480 | 2/12/2023 |
| 1.0.26 | 635 | 10/29/2022 |