DFrame — Distributed load testing framework for writing test scenarios in C#

Significance of writing load test scenarios in C#

There are many load testing frameworks out there. Some of the most popular are ab, jMeter, k6, Artillery, Gatling, wrk, bombardier, Locust, etc. k6, Artillery, and Gatling are available as SaaS, and cloud services also provide load testing frameworks such as Azure Load Testing(Managed jMeter), .NET has officially dotnet/crank framework for load testing.

  • There is a client SDK (endpoints and typed Request/Response) equivalent
  • Fully equivalent to the client implementation so there is game domain logic

DFrameApp.Run

Reference package from and write only one line. There are also lines of description of the test scenario (workload), but still, that’s all.

Performance

There are numerous load testing frameworks, but their performance varies considerably. Very detailed on the k6 blog Open source load testing tool review 2020. For example, wrk is tens to hundreds of times faster than others. Performance is very important, and sometimes workers are so inefficient that they can’t handle the load on the target. To cope with this, you will need a large number of machines and higher specs to build clusters.

REST API for Automation

DFrame has REST Api for automation, For example, /api/connections gives the number of worker connections currently connected. Execution parameters, etc., are in the form of JSON thrown by Post.

Runs on Unity

Unity is also supported. Possible uses include controlling a large number of headless Unitys. Even for normal load testing, there is a strategy to build with headless Unity without cutting out the C# for the communication part into a .NET Console App.

Library or Tool

Controller must be built by the user, not by a pre-built exe or Docket Container.

Blazor Server + MagicOnion(grpc-dotnet)

DFrame.Controller has a co-located Blazor Server and MagicOnion (grpc-dotnet) architecture.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Yoshifumi Kawai

Yoshifumi Kawai

a.k.a. neuecc. Creator of UniRx, UniTask, MessagePack for C#, MagicOnion etc. Microsoft MVP for C#. CEO/CTO of Cysharp Inc. Live and work in Tokyo, Japan.