Teste meine App mit zufällig erzeugten Fehlern

Tipp

Neu bei Chaostests? Erfahren Sie , was Chaostests sind und wie es Ihnen hilft, stabilere Apps zu erstellen.

Auf einen Blick
Ziel: Erfahren Sie, wie Ihre App API-Fehler behandelt
Zeit: 5 Minuten
Plugins:GenericRandomErrorPlugin
Voraussetzungen:Einrichten des Dev-Proxys

Beim Erstellen von Apps sollten Sie testen, wie Ihre App API-Fehler behandelt. Mit Dev Proxy können Sie Fehler für jede API simulieren, die Sie in Ihrer App mit dem GenericRandomErrorPlugin verwenden.

Simulieren von Fehlern in einer beliebigen API

Aktivieren Sie zunächst GenericRandomErrorPlugin in Ihrer Konfigurationsdatei.

Datei:devproxyrc.json

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

Tipp

Da jede API anders ist, konfigurieren Sie in der Regel eine Instanz der GenericRandomErrorPlugin einzelnen API, für die Fehler simuliert werden sollen. Um die Konfiguration leichter verwalten zu können, benennen Sie das configSection nach der API, für die Sie Fehler simulieren möchten. Geben Sie außerdem die URLs an, für die Sie Fehler in der urlsToWatch Eigenschaft mit dem Plug-In simulieren möchten. Dadurch wird es einfacher, die Konfiguration zu verwalten und in Zukunft wiederzuverwenden.

Konfigurieren Sie als Nächstes das Plug-In, um eine Datei zu verwenden, die die Fehler enthält, die Sie simulieren möchten.

Datei:devproxyrc.json (Zu derselben Datei hinzufügen)

{
  "errorsContosoApi": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/genericrandomerrorplugin.schema.json",
    "errorsFile": "errors-contoso-api.json"
  }
}

Definieren Sie schließlich in der Fehlerdatei die Liste der Fehlerantworten, die Sie simulieren möchten. Verwenden Sie beispielsweise die folgende Konfiguration, um einen 500-Fehler mit einer benutzerdefinierten JSON-Antwort zu simulieren:

Datei:errors-contoso-api.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/genericrandomerrorplugin.errorsfile.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"
          }
        }
      ]
    }
  ]
}

Sie können beliebig viele Fehlerantworten definieren.

Starten Sie Dev Proxy mit Ihrer Konfigurationsdatei, und verwenden Sie Ihre App, um zu sehen, wie die Fehler behandelt werden. Für jede übereinstimmende Anforderung bestimmt Dev Proxy, ob ein Fehler simuliert oder die Anforderung mithilfe der konfigurierten Fehlerrate an die ursprüngliche API übergeben werden soll. Wenn Dev Proxy einen Fehler simuliert, wird ein zufälliger Fehler aus dem Array der Fehlerantworten verwendet, die Sie in der Konfigurationsdatei definiert haben.

Mocks vorübergehend deaktivieren

Wenn Sie in Ihrer Konfigurationsdatei Mocks verwenden, können Sie diese mithilfe der Option --no-mocks vorübergehend deaktivieren.

devproxy --no-mocks

Nächster Schritt

Erfahren Sie mehr über GenericRandomErrorPlugin.

Siehe auch