Plugin Podsumowania Wykonania

Tworzy podsumowanie żądań przekazywanych przez serwer proxy.

Napiwek

Użyj wtyczki reportera w konfiguracji, aby zapisać podsumowanie w pliku.

Zrzut ekranu wiersza polecenia z podsumowaniem wykonywania serwera proxy dev z informacjami o przechwyconych żądaniach.

Zrzut ekranu przedstawiający wiersz polecenia z podsumowaniem żądań przechwyconych przez serwer proxy deweloperów.

Przykład konfiguracji

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ExecutionSummaryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "executionSummaryPlugin"
    }
  ],
  "executionSummaryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/executionsummaryplugin.schema.json",
    "groupBy": "url"
  }
}

Właściwości konfiguracji

Właściwości opis Wartość domyślna
groupBy Jak serwer proxy powinien zgrupować informacje w podsumowaniu. Dostępne opcje: url, messageType url

Opcje wiersza polecenia

Nazwa/nazwisko opis Wartość domyślna
--summary-group-by Jak serwer proxy powinien zgrupować informacje w podsumowaniu. Dostępne opcje: url, messageType url

Output

ExecutionSummaryPlugin tworzy raport po zatrzymaniu rejestrowania. Aby zapisać raport w formacie JSON, dodaj raport JsonReporter po wykonaniuSummaryPlugin w konfiguracji. Narzędzie JsonReporter zapisuje raport w pliku o nazwie ExecutionSummaryPlugin_JsonReporter.json w bieżącym katalogu roboczym. Jeśli plik już istnieje, serwer proxy deweloperów dołącza znacznik czasu do nazwy pliku, na przykład ExecutionSummaryPlugin_JsonReporter_20261105104151.json.

Raport JSON jest obiektem zagnieżdżonym na trzech poziomach głębokości. Wartości na najbardziej wewnętrznym poziomie to liczby, które pokazują, ile razy serwer proxy deweloperów zarejestrował komunikat. Znaczenie każdego poziomu zależy groupBy od ustawienia.

Serwer proxy deweloperów używa następujących czytelnych nazw kategorii w raporcie:

Category opis
Requests intercepted Żądania przechwycone przez serwer proxy deweloperów. Uwzględniane tylko wtedy, gdy groupBy jest messageType
Requests passed through Żądania przekazywane przez serwer proxy deweloperów do oryginalnego serwera
Requests mocked Żądania, dla których wtyczka zwróciła pozorną odpowiedź
Requests with chaos Żądania, dla których wtyczka symulowała błąd lub opóźnienie
Failures Żądania, które zakończyły się niepowodzeniem
Tips Porady dotyczące wtyczki zarejestrowanych dla żądania
Warnings Ostrzeżenia dotyczące wtyczki zarejestrowanych dla żądania
Unknown Inne komunikaty zarejestrowane dla żądania, takie jak znaczniki czasu żądania i komunikaty z wtyczek, które pominąły żądanie

Grupuj według adresu URL

Gdy groupBy ma urlwartość , raport ma następujący kształt:

{
  "<method> <url>": {
    "<category>": {
      "<message>": <count>
    }
  }
}
Level opis
1 Metoda HTTP i adres URL każdego przechwyconego żądania, na przykład GET https://jsonplaceholder.typicode.com/users. Każda kombinacja metody i adresu URL jest wyświetlana raz, niezależnie od tego, ile razy aplikacja ją nazwała
2 Kategoria komunikatów zarejestrowanych przez serwer proxy dewelopera dla żądania
3 Komunikat zarejestrowany przez serwer proxy deweloperów zamapowany na liczbę przypadków, gdy serwer proxy dewelopera zarejestrował go dla metody i adresu URL

W poniższym przykładzie przedstawiono raport dla aplikacji o nazwie GET https://jsonplaceholder.typicode.com/users raz, wyśmiewany przez serwer proxy deweloperów i GET https://jsonplaceholder.typicode.com/posts dwa razy przekazywany przez serwer proxy deweloperów. Wpisy Unknown są skracane pod kątem czytelności.

{
  "GET https://jsonplaceholder.typicode.com/users": {
    "Unknown": {
      "2026-11-05T10:41:13.1151430+00:00": 1,
      "GET https://jsonplaceholder.typicode.com/users": 1
    },
    "Requests mocked": {
      "200 https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "GET https://jsonplaceholder.typicode.com/posts": {
    "Unknown": {
      "No matching mock response found": 2,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    },
    "Requests passed through": {
      "Passed through": 2
    }
  }
}

Grupuj według typu komunikatu

Gdy groupBy ma messageTypewartość , raport ma następujący kształt:

{
  "<category>": {
    "<message>": {
      "<method> <url>": <count>
    }
  }
}
Level opis
1 Kategoria komunikatów zarejestrowanych przez serwer proxy deweloperów
2 Komunikat zarejestrowany przez serwer proxy deweloperów. Requests intercepted Dla kategorii i Requests passed through ten poziom powtarza nazwę kategorii
3 Metoda HTTP i adres URL żądania zamapowane na liczbę przypadków, gdy serwer proxy dewelopera zarejestrował komunikat dla tej metody i adresu URL

Poniższy przykład przedstawia raport dla tych samych żądań pogrupowanych według typu komunikatu. Kategoria Unknown jest skracana do czytelności.

{
  "Requests intercepted": {
    "Requests intercepted": {
      "GET https://jsonplaceholder.typicode.com/users": 1,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Unknown": {
    "No matching mock response found": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Requests mocked": {
    "200 https://jsonplaceholder.typicode.com/users": {
      "GET https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "Requests passed through": {
    "Requests passed through": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  }
}

Napiwek

Aby zaewidencjonować potok ciągłej integracji, który żąda przechwycenia serwera proxy dewelopera, użyj messageType grupowania i odczytania ["Requests intercepted"]["Requests intercepted"] kluczy obiektu. url Po zgrupowaniu odczytaj klucze najwyższego poziomu. Każdy klucz rozpoczyna się od metody HTTP, po której następuje spacja i adres URL. Nie polegaj na zawartości Unknown kategorii, ponieważ zawiera ona znaczniki czasu i inne komunikaty diagnostyczne.

Informacje dodatkowe

Następny krok