Udostępnij za pośrednictwem


Przetestuj moją aplikację z losowymi błędami

Podczas tworzenia aplikacji należy przetestować sposób obsługi błędów interfejsu API przez aplikację. Dev Proxy umożliwia symulowanie błędów w dowolnym interfejsie API używanym w aplikacji przy użyciu GenericRandomErrorPlugin.

Symulowanie błędów w dowolnym interfejsie API

Aby rozpocząć, włącz element GenericRandomErrorPlugin w pliku konfiguracji.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "errorsContosoApi",
      "urlsToWatch": [
        "https://api.contoso.com/*"
      ]
    }
  ]
}

Napiwek

Ponieważ każde API jest inne, zazwyczaj konfigurujesz wystąpienie GenericRandomErrorPlugin dla każdego API, na którym chcesz symulować błędy. Aby ułatwić zarządzanie konfiguracją, nadaj configSection nazwę po interfejsie API, na którym chcesz symulować błędy. Ponadto określ adresy URL, na których chcesz symulować błędy w właściwości urlsToWatch za pomocą wtyczki. Ułatwi to zarządzanie konfiguracją i ponowne użycie jej w przyszłości.

Następnie skonfiguruj wtyczkę tak, aby korzystała z pliku zawierającego błędy, które chcesz symulować.

{
  "errorsContosoApi": {
    "errorsFile": "errors-contoso-api.json"
  }
}

Na koniec w pliku errors zdefiniuj listę odpowiedzi na błędy, które chcesz symulować. Aby na przykład zasymulować błąd 500 z niestandardową odpowiedzią JSON, użyj następującej konfiguracji:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://api.contoso.com/*"
      },
      "responses": [
        {
          "statusCode": 500,
          "headers": [
            {
              "name": "content-type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "body": {
            "code": "InternalServerError",
            "message": "Something went wrong"
          }
        }
      ]
    }
  ]
}

Możesz zdefiniować dowolną liczbę odpowiedzi na błędy.

Uruchom serwer proxy dewelopera przy użyciu pliku konfiguracji i użyj aplikacji, aby zobaczyć, jak obsługuje błędy. Dla każdego zgodnego żądania serwer proxy deweloperów określa, czy symulować błąd, czy przekazać żądanie do oryginalnego interfejsu API przy użyciu skonfigurowanego współczynnika błędów. Gdy Dev Proxy symuluje błąd, używa losowego błędu z tablicy odpowiedzi błędów, które zdefiniowałeś w pliku konfiguracji.

Tymczasowo wyłącz makiety

Jeśli używasz makiety w pliku konfiguracji, możesz je tymczasowo wyłączyć przy użyciu --no-mocks opcji .

devproxy --no-mocks

Następny krok

Dowiedz się więcej o pliku GenericRandomErrorPlugin.