LoadSurge 1.0.0.56
dotnet add package LoadSurge --version 1.0.0.56
NuGet\Install-Package LoadSurge -Version 1.0.0.56
<PackageReference Include="LoadSurge" Version="1.0.0.56" />
<PackageVersion Include="LoadSurge" Version="1.0.0.56" />
<PackageReference Include="LoadSurge" />
paket add LoadSurge --version 1.0.0.56
#r "nuget: LoadSurge, 1.0.0.56"
#:package LoadSurge@1.0.0.56
#addin nuget:?package=LoadSurge&version=1.0.0.56
#tool nuget:?package=LoadSurge&version=1.0.0.56
LoadSurge
High-performance, actor-based load testing framework for .NET.
Installation
dotnet add package LoadSurge
Quick Start
using LoadSurge.Models;
using LoadSurge.Runner;
var plan = new LoadExecutionPlan
{
Name = "API_Load_Test",
Settings = new LoadSettings
{
Concurrency = 50,
Duration = TimeSpan.FromSeconds(30),
Interval = TimeSpan.FromMilliseconds(100)
},
Action = async () =>
{
var response = await httpClient.GetAsync("https://api.example.com/health");
return response.IsSuccessStatusCode;
}
};
var result = await LoadRunner.Run(plan);
Console.WriteLine($"Total: {result.Total}, Success: {result.Success}, Failed: {result.Failure}");
Console.WriteLine($"RPS: {result.RequestsPerSecond:F1}, Avg: {result.AverageLatency:F1}ms, P95: {result.Percentile95Latency:F1}ms");
Examples
Fixed Iteration Count
var plan = new LoadExecutionPlan
{
Name = "Fixed_100_Requests",
Settings = new LoadSettings
{
Concurrency = 10,
Duration = TimeSpan.FromMinutes(5),
Interval = TimeSpan.FromMilliseconds(100),
MaxIterations = 100 // Stop after exactly 100 requests
},
Action = async () => { /* your test */ return true; }
};
Database Testing
var plan = new LoadExecutionPlan
{
Name = "DB_Pool_Test",
Settings = new LoadSettings
{
Concurrency = 100,
Duration = TimeSpan.FromMinutes(2),
Interval = TimeSpan.FromMilliseconds(50)
},
Action = async () =>
{
using var conn = new SqlConnection(connectionString);
await conn.OpenAsync();
using var cmd = conn.CreateCommand();
cmd.CommandText = "SELECT 1";
return await cmd.ExecuteScalarAsync() != null;
}
};
Configuration
Settings
| Property | Description |
|---|---|
Concurrency |
Number of parallel operations per interval |
Duration |
Total test duration |
Interval |
Time between batches |
MaxIterations |
Optional max request count |
TerminationMode |
How test stops (Duration, CompleteCurrentInterval, StrictDuration) |
GracefulStopTimeout |
Time to wait for in-flight requests (default: 30% of duration) |
Execution Modes
var config = new LoadWorkerConfiguration { Mode = LoadWorkerMode.Hybrid };
var result = await LoadRunner.Run(plan, config);
- Hybrid (default) - Channel-based, optimized for high throughput (10k+ RPS)
- TaskBased - Task.Run based, suitable for moderate load
Results
result.Total // Total requests
result.Success // Successful requests
result.Failure // Failed requests
result.RequestsPerSecond // Throughput
result.AverageLatency // Mean latency (ms)
result.Percentile95Latency // P95 latency (ms)
result.Percentile99Latency // P99 latency (ms)
Requirements
- .NET Standard 2.0+ (.NET Framework 4.7.2+, .NET 6/8/9+)
Related
- xUnitV3LoadFramework - xUnit v3 integration with
[Load]attribute
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Akka (>= 1.5.62)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.5)
- Microsoft.SourceLink.GitHub (>= 10.0.201)
- System.Threading.Channels (>= 10.0.5)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LoadSurge:
| Package | Downloads |
|---|---|
|
xUnitV3LoadFramework
A powerful load testing framework for .NET applications that seamlessly integrates with xUnit v3. Features actor-based architecture using Akka.NET, fluent API for test configuration, comprehensive performance metrics, and production-ready error handling. Perfect for testing APIs, databases, and web applications under load. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0.56 | 29 | 3/14/2026 |
| 1.0.0.55 | 115 | 3/5/2026 |
| 1.0.0.54 | 86 | 3/1/2026 |
| 1.0.0.52 | 227 | 2/1/2026 |
| 1.0.0.51 | 160 | 1/18/2026 |
| 1.0.0.50 | 290 | 12/25/2025 |
| 1.0.0.49 | 511 | 12/15/2025 |
| 1.0.0.48 | 269 | 12/15/2025 |
| 1.0.0.47 | 276 | 12/15/2025 |
| 1.0.0.46 | 255 | 12/15/2025 |
| 1.0.0.45 | 326 | 12/5/2025 |
| 1.0.0.44 | 632 | 12/1/2025 |
| 1.0.0.43 | 354 | 11/14/2025 |
| 1.0.0.42 | 235 | 11/14/2025 |
| 1.0.0.41 | 226 | 11/14/2025 |
| 1.0.0.40 | 232 | 11/14/2025 |
| 1.0.0.39 | 234 | 11/14/2025 |
| 1.0.0.36 | 228 | 11/14/2025 |
| 1.0.0.35 | 235 | 11/14/2025 |
| 1.0.0.34 | 240 | 11/14/2025 |
Version 1.0.0.56 - Automated build from commit c6dbe0c266ad31f26153f126b8f203eea2243d72