Abstracta.JmeterDsl 0.3.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Abstracta.JmeterDsl --version 0.3.2                
NuGet\Install-Package Abstracta.JmeterDsl -Version 0.3.2                
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="Abstracta.JmeterDsl" Version="0.3.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Abstracta.JmeterDsl --version 0.3.2                
#r "nuget: Abstracta.JmeterDsl, 0.3.2"                
#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.
// Install Abstracta.JmeterDsl as a Cake Addin
#addin nuget:?package=Abstracta.JmeterDsl&version=0.3.2

// Install Abstracta.JmeterDsl as a Cake Tool
#tool nuget:?package=Abstracta.JmeterDsl&version=0.3.2                

logo

Simple .Net API to run performance tests, using JMeter as engine, in a Git and programmers friendly way.

If you like this project, please give it a star ⭐! This helps the project be more visible, gain relevance, and encourage us to invest more effort in new features.

Here, you can find the Java DSL.

Please join discord server or create GitHub issues and discussions to be part of the community and clear out doubts, get the latest news, propose ideas, report issues, etc.

Usage

Add the package to your project:

dotnet add package Abstracta.JmeterDsl --version 0.3.2

Here is a simple example test using Nunit+ with 2 threads/users iterating 10 times each to send HTTP POST requests with a JSON body to http://my.service:

using System.Net.Http.Headers;
using System.Net.Mime;
using static Abstracta.JmeterDsl.JmeterDsl;

public class PerformanceTest
{
    [Test]
    public void LoadTest()
    {
        var stats = TestPlan(
            ThreadGroup(2, 10,
                HttpSampler("http://my.service")
                    .Post("{\"name\": \"test\"}", new MediaTypeHeaderValue(MediaTypeNames.Application.Json))
            ),
            //this is just to log details of each request stats
            JtlWriter("jtls")
        ).Run();
        Assert.That(stats.Overall.SampleTimePercentile99, Is.LessThan(TimeSpan.FromSeconds(5)));
    }
}

Java 8+ is required for test plan execution.

More examples can be found in tests

Here is a sample project for reference or for starting new projects from scratch.

Tip 1: When working with multiple samplers in a test plan, specify their names to easily check their respective statistics.

Tip 2: Since JMeter uses log4j2, if you want to control the logging level or output, you can use something similar to the tests included log4j2.xml, using "CopyToOutputDirectory" in the project item so the file is available in dotnet build output directory as well (check [Abstracta.JmeterDsl.Test/Abstracta.JmeterDsl.Tests.csproj]).

Check here for details on some interesting use cases, like running tests at scale in Azure Load Testing, and general usage guides.

Why?

Check more about the motivation and analysis of alternatives here

Support

Join our Discord server to engage with fellow JMeter DSL enthusiasts, ask questions, and share experiences. Visit GitHub Issues or GitHub Discussions for bug reports, feature requests and share ideas.

Abstracta, the main supporter for JMeter DSL development, offers enterprise-level support. Get faster response times, personalized customizations and consulting.

For detailed support information, visit our Support page.

Articles & Talks

Check articles and talks mentioning the Java version here.

Ecosystem

  • Jmeter Java DSL: Java API which is the base of the .Net API.
  • pymeter: Python API based on JMeter Java DSL that allows Python devs to create and run JMeter test plans.

Contributing & Requesting features

Currently, the project covers some of the most used features of JMeter and JMeter Java DSL test, but not everything, as we keep improving it to cover more use cases.

We invest in the development of DSL according to the community's (your) interest, which we evaluate by reviewing GitHub stars' evolution, feature requests, and contributions.

To keep improving the DSL we need you to please create an issue for any particular feature or need that you have.

We also really appreciate pull requests. Check the CONTRIBUTING guide for an explanation of the main library components and how you can extend the library.

Product 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. 
.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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Abstracta.JmeterDsl:

Package Downloads
Abstracta.JmeterDsl.Azure

Module which allows to easily run Abstracta.JmeterDsl test plans at scale in Azure Load Testing.

Abstracta.JmeterDsl.BlazeMeter

Module which allows to easily run Abstracta.JmeterDsl test plans at scale in BlazeMeter.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.6.0 20,567 5/3/2024
0.5.0 5,486 3/13/2024
0.4.0 3,800 2/6/2024
0.3.2 4,646 10/17/2023
0.3.1 2,062 9/14/2023
0.2.0-alpha1 556 8/31/2023
0.1.0 1,018 7/6/2023