Giter Site home page Giter Site logo

netling's Introduction

Netling is a load tester client for easy web testing. It is extremely fast while using little CPU or memory.

Requirements

.NET 7

Usage

The base source is meant to support most scenarios. You can use the WPF client, console client or integrate Netling.Core into your custom solution.

Need custom headers, data, etc? Fork and tweak it to your needs! :)

SocketWorker

This is the default worker. It uses raw sockets and is very fast.

PS: SocketWorker requires keep-alive. Connection: Close will result in errors.

HttpClientWorker

This worker uses HttpClient and is easier to tweak.

Screenshots

Client

Result window

Console application

netling's People

Contributors

evest avatar gilbertogwa avatar hallatore avatar henningst avatar tornhoof avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netling's Issues

Reference to .NET 5.0 fails

I downloaded the latest .NET 5 SDK preview 7. Yet, I cannot build netling project as I get error like:

Severity Code Description Project File Line Suppression State
Error MSB3644 The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks Netling.Core C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1177
Error Project '..\Netling.Core\Netling.Core.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Core.HttpClientWorker C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core.SocketWorker\Netling.Core.SocketWorker.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Benchmarks C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core\Netling.Core.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Benchmarks C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core.HttpClientWorker\Netling.Core.HttpClientWorker.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Client C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core.SocketWorker\Netling.Core.SocketWorker.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Client C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core\Netling.Core.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.Client C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core.HttpClientWorker\Netling.Core.HttpClientWorker.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.ConsoleClient C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core.SocketWorker\Netling.Core.SocketWorker.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.ConsoleClient C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error Project '..\Netling.Core\Netling.Core.csproj' targets 'net5.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v5.0'. Netling.ConsoleClient C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1655
Error MSB3644 The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks Netling.Tests C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1177
Error MSB3644 The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks Netling.Benchmarks C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 1177

Please advise what to do next.

Authentication

Hi. I love your application.

I am missing authentication options though. Working on client based applications, majority of pages are protected by either username & password combination or Windows authentication.

Is there a plan to implement this?

Add console application for basic usage

Should support basic scenarios.

Options:
-t <number of threads to spawn>      // default: 1
-d <duration to run for in seconds>  // default: 10
-p <number of requests to pipeline>  // default: 1
-a                                   // Enables thread afinity

netling.exe <options> <url>

Example usage:
netling.exe http://localhost
netling.exe -t 4 -d 60 -p 10 -a http://localhost

Example output:
<TBD>

Download of exe

Hi there,

Would it please be possible to provide a direct link to the .exe download

Looking for a .net framework version

Kind Regards
Ash D

User Guide

Hi,

Would like to use this application for Load testing. Could you please provide us user guide for setup the application and it's use.

Timely response on this would be highly appreciated

Regards,
Murali

Suitability for unit tests

I'd like to expand your tool so that it can also run unit tests through a load-test scenario.

A full explanation of what I want is in this SO post.

How readily do you think your code could be adjusted for this?

Project is Windows-Only

The Readme implies that .Net Core is the only depencendy.
However, there are Windows-Only Libraries involved.

My url is substituted with google here

/usr/local/share/dotnet/dotnet /Users/bjustice/workspace/Netling/Netling.ConsoleClient/bin/Debug/netcoreapp2.1/Netling.ConsoleClient.dll -t 10 -d 10 -c 10 https://google.com

Running 10 test @ https://google.com

Unhandled Exception: System.PlatformNotSupportedException: Socket.IOControl handles Windows-specific control codes and is not supported on this platform.
at System.Net.Sockets.SocketPal.WindowsIoctl(SafeCloseSocket handle, Int32 ioControlCode, Byte[] optionInValue, Byte[] optionOutValue, Int32& optionLength)
at System.Net.Sockets.Socket.IOControl(Int32 ioControlCode, Byte[] optionInValue, Byte[] optionOutValue)
at Netling.Core.SocketWorker.Performance.HttpWorkerClient.CheckInit() in /Users/bjustice/workspace/Netling/Netling.Core.SocketWorker/Performance/HttpWorkerClient.cs:line 39
at Netling.Core.SocketWorker.Performance.HttpWorkerClient..ctor(IPEndPoint endPoint, Uri uri) in /Users/bjustice/workspace/Netling/Netling.Core.SocketWorker/Performance/HttpWorkerClient.cs:line 22
at Netling.Core.SocketWorker.SocketWorkerJob..ctor(Int32 index, Uri uri, WorkerThreadResult workerThreadResult) in /Users/bjustice/workspace/Netling/Netling.Core.SocketWorker/SocketWorkerJob.cs:line 48
at Netling.Core.SocketWorker.SocketWorkerJob.Init(Int32 index, WorkerThreadResult workerThreadResult) in /Users/bjustice/workspace/Netling/Netling.Core.SocketWorker/SocketWorkerJob.cs:line 73
at Netling.Core.Worker.DoWork_Count(Int32 count, ConcurrentQueue`1 results, CancellationToken cancellationToken, ManualResetEventSlim resetEvent, Int32 workerIndex) in /Users/bjustice/workspace/Netling/Netling.Core/Worker.cs:line 109
at Netling.Core.Worker.<>c__DisplayClass5_1.<b__0>d.MoveNext() in /Users/bjustice/workspace/Netling/Netling.Core/Worker.cs:line 56
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ThreadPoolWorkQueue.Dispatch()
[1] 95980 abort /usr/local/share/dotnet/dotnet -t 10 -d 10 -c 10 https://google.com

Request for Chocolatey package

I would love to be able to choco install netling and be up in running in seconds on any computer, and I think a lot of other folks would agree.

Publishing an app to Chocolatey is the moral equivalent of publishing a library to NuGet and it can be automated on build servers.

Are you accepting pull requests?

I've made a few custom changes to Netling to accept different HTTP methods, authentication tokens etc. via the console app but I've not done this via the WPF because (a) I don't use it and (b) I don't really do any WPF development.

If I created a pull request would you integrate them into the master branch or are you not really interested in handling these kinds of additional features (additional work for you to manage etc)?

Need to add AllowUnsafeBlocks=true on Netling.Core for it to compile on xbuild

Currently xbuild cannot compile the console version for it to run on mac or linux becasue it depends on Core which is doing some unsafe byte operations. We need to add the code below to .csproj file in Core library to fix this.

Error

Utils/ByteHelpers.cs(8,23): error CS0227: Unsafe code requires the `unsafe' command line option to be specified

Fix

Add line below in .csproj file of Code sub-project.

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>

A way of viewing the type of errors that are occurring in a run

A small feature request, or perhaps a todo for myself to contribute: It would be nice to see the type of error in a run if a run contains errors. If the results say "Errors"=40 then it could list the errors (type + message) as a new tab after "URLs".

Unable to build

I cloned the source open in vs 2019: try to build and get this error on building:

Severity Code Description Project File Line Suppression State
Error MC1000 Unknown build error, 'Could not find assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. Either explicitly load this assembly using a method such as LoadFromAssemblyPath() or use a MetadataAssemblyResolver that returns a valid assembly.' Netling.Client C:\Program Files\dotnet\sdk\3.0.100-preview5-011568\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.WinFX.targets 243

Explain what pipelining means

Please explain in readme.md what pipelining parameter does. It can be very confusing to understand without digging into source code.

Record status code count from responses

Right now any request is a success as long as we don't get a socket exception. Change this to record the amount of requests per status code and count all status codes >= 400 as errors.

Support Enable/Disable GZIP Compression

I'm adding request decompression to my API (as opposed to the more common response compression) and would like to load test with GZIP'ed requests. Any chance of a simple check box or perhaps a combo-box (You may want to support other compression methods such as Deflate or Brotli) containing this option?

Just a Question

How do I read the results:

rps is clear - if the median is 5 ms then I should get ~ 200 rps.
But how I calculate the number when increasing threads? For example 5 threads and 200 rps would mean the web service worked on 1000 request/second for all?

Downloadable binaries

Hi, Netling looks very clean & modern. But I can't try it out as I m not into .Net world :) Can you release downloadable (if possible, portable) binary file? Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.