NBomber to otwartoźródłowy framework .NET, protokół open-source to Apache 2.0, NBomber służy do testów obciążeniowych różnych usług, w tym sieci, kolejek wiadomości, baz danych itp. Wersja NBomber 2.0 została wydana w maju tego roku. NBomber jest podobny do JMeter, ale różnica od JMeter polega na tym, że NBomber wyraża scenariusze testowe za pomocą kodu F#/C#/JSON.
Głównym powodem NBomber jest zapewnienie lekkiego frameworka do pisania testów obciążeniowych, które można wykorzystać do testowania dowolnego systemu i symulowania dowolnego obciążenia produkcyjnego. Chcemy po prostu zapewnić pewną abstrakcję, abyśmy mogli opisać dowolny typ ładunku i jednocześnie mieć proste, intuicyjne API. Kolejnym celem jest dostarczenie elementów budulcowych do weryfikacji projektu POC (proof of concept) poprzez zastosowanie dowolnego złożonego rozkładu obciążenia. Za pomocą NBomber możesz testować dowolny system PULL lub PUSH (HTTP, WebSockets, GraphQl, gRPC, SQL Databse, MongoDb, Redis itd.). Dzięki NBomber można łatwo przekształcić niektóre testy integracyjne w testy obciążeniowe.
NBomber jako nowoczesny framework zapewnia:
- Protokoły zerozależności (HTTP/WebSockets/AMQP/SQL)
- Zero zależności od modeli semantycznych (Pull/Push)
- Bardzo elastyczna konfiguracja i bardzo proste API (F#/C#/JSON)
- Obsługa klastrów
- Raportowanie w czasie rzeczywistym
- Integracja CI/CD
- Wsparcie dla strumienia danych
Adres GitHub:Logowanie do linku jest widoczne. Adres dokumentu:Logowanie do linku jest widoczne.
Najpierw stwórz nowy projekt konsoli .NET Core 3.1 i użyj nuget do zainstalowania następującego pakietu:
Aby uzyskać jak największą wydajność z NBomber, powinieneś edytować ustawienia projektu w następującej konfiguracji:
Ustawienia garbage collection GarbageCollection powinien przełączyć się na tryb serwera i współbieżności:
Pełne przygotowanie projektu:
Sprawdź wysłanie żądania GET na tę stronę i ustaw niestandardowy nagłówek żądania z następującym kodem:
Program automatycznie wygeneruje raport testowy w katalogu bin\Debug\netcoreapp3.1\reports\, jak pokazano na poniższym rysunku:
(Koniec)
|