Fuzn.TestFuzn
0.7.4
dotnet add package Fuzn.TestFuzn --version 0.7.4
NuGet\Install-Package Fuzn.TestFuzn -Version 0.7.4
<PackageReference Include="Fuzn.TestFuzn" Version="0.7.4" />
<PackageVersion Include="Fuzn.TestFuzn" Version="0.7.4" />
<PackageReference Include="Fuzn.TestFuzn" />
paket add Fuzn.TestFuzn --version 0.7.4
#r "nuget: Fuzn.TestFuzn, 0.7.4"
#:package Fuzn.TestFuzn@0.7.4
#addin nuget:?package=Fuzn.TestFuzn&version=0.7.4
#tool nuget:?package=Fuzn.TestFuzn&version=0.7.4
TestFuzn
TestFuzn (pronounced "testfusion") is a unified testing framework that brings together unit tests, end-to-end tests, and load tests in a single, streamlined experience. Itβs designed to bridge the gap between developers and testers by offering clean, readable tests, reports and a consistent testing approach.
π§ Beta
TestFuzn is currently in beta. Breaking changes may occur until a stable release.
π Documentation:
π https://github.com/FuznIO/TestFuzn/blob/main/docs/README.md
β¨ Key Features
- π§ͺ One framework for all test types
Write and run unit, end-to-end, and load tests using the same framework β no need to mix and match tools. - π Readable and useful reports
Get clear test results that are easy to understand for both developers and testers. - π§Ό Slim and clean by design
Built to be lightweight and focused β includes just the right features to stay easy to use and maintain. - π¬ Test any system over HTTP
End-to-end and load tests support HTTP-based systems, regardless of the underlying technology stack. - π Web UI testing with Microsoft Playwright
Automate and validate browser-based applications using Playwright β works with any web app, no matter what language or framework itβs built in. - π» C# / .NET first
Write all your tests in C#. Leverages the power of .NET to keep things fast and flexible. - β
MSTest compatible
Built-in support for the widely used MSTest framework β reuse what you already know and love.
π A Quick Look
A standard test β a scenario made of named steps:
[TestClass]
public class ProductTests : Test
{
[Test]
public async Task Verify_product_can_be_created_and_read()
{
await Scenario<Product>()
.Step("Create a product", async (context) =>
{
context.Model.Id = Guid.NewGuid();
context.Model.Name = "Keyboard";
context.Model.Price = 49;
var response = await context.CreateHttpRequest("https://localhost:5001/api/products")
.WithContent(context.Model)
.Post();
Assert.IsTrue(response.IsSuccessful);
})
.Step("Read the product back", async (context) =>
{
var response = await context.CreateHttpRequest($"https://localhost:5001/api/products/{context.Model.Id}")
.Get<Product>();
Assert.IsTrue(response.IsSuccessful);
Assert.AreEqual("Keyboard", response.Data!.Name);
})
.Run();
}
}
Now make it a load test β same scenario, same steps, two extra lines:
await Scenario<Product>()
.Step("Create a product", async (context) => { /* unchanged */ })
.Step("Read the product back", async (context) => { /* unchanged */ })
// 50 iterations per second for 30 seconds
.Load().Simulations((context, simulations) =>
simulations.FixedLoad(rate: 50, duration: TimeSpan.FromSeconds(30)))
.Load().AssertWhenDone((context, stats) =>
Assert.AreEqual(0, stats.Failed.RequestCount))
.Run();
That's the whole idea: the test you already wrote becomes the load test. No second tool, no rewriting your scenario in another DSL β and you get response-time percentiles, throughput and an HTML report out of it.
Other simulations include OneTimeLoad, GradualLoadIncrease, FixedConcurrentLoad and RandomLoadPerSecond. See Load Testing for the full set.
π¦ NuGet Packages
| Package | Description |
|---|---|
| Fuzn.TestFuzn | Core framework |
| Fuzn.TestFuzn.Adapters.MSTest | MSTest integration |
| Fuzn.TestFuzn.Plugins.Http | HTTP testing via Fuzn.FluentHttp |
| Fuzn.TestFuzn.Plugins.Playwright | Browser automation with Playwright |
| Fuzn.TestFuzn.Plugins.WebSocket | WebSocket testing |
| Fuzn.TestFuzn.Sinks.InfluxDB | Real-time metrics to InfluxDB |
πΈ License & Usage
- 100% free β for personal, organizational, and commercial use.
| 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. |
-
net10.0
- HdrHistogram (>= 2.5.0)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.10)
- Microsoft.Extensions.Configuration.Json (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Console (>= 10.0.10)
- Spectre.Console.Cli (>= 0.55.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Fuzn.TestFuzn:
| Package | Downloads |
|---|---|
|
Fuzn.TestFuzn.Adapters.MSTest
MSTest plugin for TestFuzn |
|
|
Fuzn.TestFuzn.Plugins.Http
Http plugin for TestFuzn |
|
|
Fuzn.TestFuzn.Plugins.Playwright
Playwright plugin for TestFuzn |
|
|
Fuzn.TestFuzn.Sinks.InfluxDB
InfluxDB sink for TestFuzn |
|
|
Fuzn.TestFuzn.Plugins.WebSocket
WebSocket plugin for TestFuzn |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.7.4 | 148 | 8/5/2026 |
| 0.7.3 | 924 | 4/19/2026 |
| 0.7.2 | 170 | 4/13/2026 |
| 0.7.1 | 156 | 4/8/2026 |
| 0.7.0 | 161 | 4/6/2026 |
| 0.6.18-beta | 157 | 3/16/2026 |
| 0.6.17-beta | 186 | 2/27/2026 |
| 0.6.16-beta | 150 | 2/23/2026 |
| 0.6.15-beta | 150 | 2/23/2026 |
| 0.6.14-beta | 160 | 2/18/2026 |
| 0.6.13-beta | 160 | 2/16/2026 |
| 0.6.12-beta | 146 | 2/15/2026 |
| 0.6.11-beta | 149 | 2/12/2026 |
| 0.6.10-beta | 157 | 2/11/2026 |
| 0.6.9-beta | 152 | 2/3/2026 |
| 0.6.8-beta | 169 | 2/1/2026 |
| 0.6.7-beta | 170 | 1/27/2026 |
| 0.6.6-beta | 165 | 1/25/2026 |
| 0.6.5-beta | 193 | 1/23/2026 |
| 0.6.4-beta | 165 | 1/19/2026 |