xUnitV3LoadFramework 1.0.0.86

There is a newer version of this package available.
See the version list below for details.
dotnet add package xUnitV3LoadFramework --version 1.0.0.86
                    
NuGet\Install-Package xUnitV3LoadFramework -Version 1.0.0.86
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="xUnitV3LoadFramework" Version="1.0.0.86" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="xUnitV3LoadFramework" Version="1.0.0.86" />
                    
Directory.Packages.props
<PackageReference Include="xUnitV3LoadFramework" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add xUnitV3LoadFramework --version 1.0.0.86
                    
#r "nuget: xUnitV3LoadFramework, 1.0.0.86"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package xUnitV3LoadFramework@1.0.0.86
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=xUnitV3LoadFramework&version=1.0.0.86
                    
Install as a Cake Addin
#tool nuget:?package=xUnitV3LoadFramework&version=1.0.0.86
                    
Install as a Cake Tool

🚀 xUnitV3LoadFramework

NuGet Downloads

xUnitV3LoadFramework is a robust and user-friendly load testing framework built to seamlessly integrate with xUnit and powered by Akka.NET actors. It allows developers to efficiently define, execute, and analyze parallel load test scenarios, making load testing a natural part of your automated testing workflow.


🌟 Features

Hybrid Execution Model

  • Channel-based Workers: Fixed worker pools with pre-allocated channels for consistent performance
  • Task-based Workers: Dynamic task creation for flexible workload handling
  • Automatic Optimization: Framework automatically selects optimal worker counts based on system resources

Comprehensive Metrics

  • Latency Percentiles: P50, P95, P99 latency measurements
  • Throughput Analysis: Requests per second with real-time monitoring
  • Resource Utilization: Memory usage, worker thread tracking, GC pressure
  • Queue Time Tracking: Average and maximum queue times

xUnit v3 Integration

  • Native Test Framework: Seamless integration with xUnit v3 test discovery and execution
  • Attribute-based Configuration: Simple [Load] attributes for test configuration
  • Test Result Integration: Load test results integrated with xUnit test results

Actor-based Architecture

  • Akka.NET Foundation: Built on proven actor model for reliability and scalability
  • Message-driven Processing: Asynchronous message passing for high throughput
  • Fault Tolerance: Supervisor hierarchies for robust error handling

📊 Performance Highlights

  • High Throughput: Tested up to 500,000 requests with sustained performance
  • Low Latency: Sub-millisecond overhead for test execution framework
  • Resource Efficient: Optimized memory usage and GC pressure management
  • Scalable: Automatic scaling based on available system resources

🔧 System Requirements

  • .NET 8.0+
  • xUnit v3 (preview)
  • Akka.NET 1.5.41+
  • Minimum 4GB RAM for high-load scenarios
  • Multi-core CPU recommended for optimal performance

⚡ Installation

Install via NuGet package manager:

dotnet add package xUnitV3LoadFramework

🚦 Quick Start

Defining a Load Test

Use the Load attribute (inheriting from FactAttribute) to configure concurrency level, duration, interval, and execution order.

Running Your Load Test

Execute your tests using the standard xUnit command:

dotnet test

📝 Usage Examples

Basic Load Test Example

Here's a clear example demonstrating how to define and execute load tests using the Specification base class and the [Load] attribute:

using xUnitV3LoadFramework.Attributes;
using xUnitV3LoadFramework.Extensions;
using xUnitV3LoadFramework.Extensions.Framework;
using System;

[assembly: TestFramework(typeof(LoadTestFramework))]

namespace xUnitLoadDemo;

public class ExampleLoadSpecification : Specification
{
    protected override void EstablishContext()
    {
        Console.WriteLine(">> Setup phase");
    }

    protected override void Because()
    {
        Console.WriteLine(">> Action phase");
    }

    [Load(order: 1, concurrency: 2, duration: 5000, interval: 500)]
    public void should_run_load_scenario_1()
    {
        Console.WriteLine(">> Running Load 1");
    }

    [Load(order: 2, concurrency: 3, duration: 7000, interval: 300)]
    public void should_run_load_scenario_2()
    {
        Console.WriteLine(">> Running Load 2");
    }
}

API Load Testing Example

public class ApiLoadTests : Specification
{
    [Load(order: 1, concurrency: 100, duration: 30000, interval: 1000)]
    public async Task<bool> When_testing_api_endpoint()
    {
        using var client = new HttpClient();
        var response = await client.GetAsync("https://api.example.com/health");
        return response.IsSuccessStatusCode;
    }
}

Each [Load] attribute defines:

  • order: the test execution order
  • concurrency: number of parallel executions
  • duration: how long to run (in milliseconds)
  • interval: delay between each wave of execution (in milliseconds)

Run your tests using:

dotnet test

📖 Documentation

Getting Started

Architecture & Design

User Guides

API Reference

Best Practices

Advanced Topics

Examples & Scenarios

For comprehensive documentation, visit the docs folder.

Examples: examples


🤝 Contributing

Your contributions and feedback are always welcome!


📜 License

This project is licensed under the MIT License.


📫 Contact

For questions, suggestions, or feedback, please open an issue or contact directly:

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0.36 125 9/12/2025
2.0.0.35 128 9/12/2025
2.0.0.27 350 8/5/2025
2.0.0.22 116 8/3/2025
2.0.0.21 114 8/3/2025
2.0.0.20 113 8/3/2025
2.0.0.19 119 8/3/2025
1.0.0.95 25 8/2/2025
1.0.0.94 26 8/1/2025
1.0.0.93 31 8/1/2025
1.0.0.92 105 7/29/2025
1.0.0.91 97 7/28/2025
1.0.0.90 95 7/28/2025
1.0.0.87 318 7/25/2025
1.0.0.86 318 7/25/2025
1.0.0.85 447 7/24/2025
1.0.0.84 441 7/24/2025
1.0.0.83 513 7/23/2025
1.0.0.81 515 7/22/2025
1.0.0.80 510 7/22/2025
1.0.0.79 517 7/22/2025
1.0.0.78 516 7/22/2025
1.0.0.77 519 7/22/2025
1.0.0.76 147 7/7/2025
1.0.0.75 140 7/7/2025
1.0.0.74 76 7/5/2025
1.0.0.73 249 5/12/2025
1.0.0.72 200 5/11/2025
1.0.0.71 192 5/11/2025
1.0.0.70 93 5/9/2025
1.0.0.69 91 5/9/2025
1.0.0.68 89 5/9/2025
1.0.0.67 96 5/9/2025
1.0.0.66 103 5/9/2025
1.0.0.65 102 5/9/2025
1.0.0.64 140 5/9/2025
1.0.0.63 146 5/9/2025
1.0.0.62 154 4/30/2025
1.0.0.61 152 4/30/2025
1.0.0.60 151 4/30/2025
1.0.0.57 153 4/30/2025