Sdílet prostřednictvím


Testování aplikace s náhodnými chybami

Při vytváření aplikací byste měli otestovat, jak aplikace zpracovává chyby rozhraní API. Dev Proxy umožňuje simulovat chyby u libovolného rozhraní API, které ve své aplikaci používáte, pomocí GenericRandomErrorPlugin.

Simulace chyb v libovolném rozhraní API

Začněte tím, že povolíte GenericRandomErrorPlugin ve vašem konfiguračním souboru.

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

Tip

Vzhledem k tomu, že se každé rozhraní API liší, obvykle nakonfigurujete instanci GenericRandomErrorPlugin jednotlivých rozhraní API, na které chcete simulovat chyby. Pokud chcete usnadnit správu konfigurace, pojmenujte configSection po rozhraní API, na které chcete simulovat chyby. Kromě toho zadejte adresy URL, na které chcete simulovat chyby ve vlastnosti urlsToWatch pomocí pluginu. To usnadní správu konfigurace a jeho opětovné použití v budoucnu.

Dále nakonfigurujte modul plug-in tak, aby používal soubor obsahující chyby, které chcete simulovat.

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

Nakonec v souboru chyb definujte seznam chybových odpovědí, které chcete simulovat. Pokud chcete například simulovat chybu 500 s vlastní odpovědí JSON, použijte následující konfiguraci:

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

Můžete definovat tolik chybových odpovědí, kolik potřebujete.

Spusťte dev Proxy s konfiguračním souborem a pomocí aplikace zjistěte, jak tyto chyby zpracovává. Pro každý odpovídající požadavek dev proxy určuje, jestli se má simulovat chyba, nebo předat požadavek původnímu rozhraní API pomocí nakonfigurované míry selhání. Když dev proxy simuluje chybu, použije náhodnou chybu z pole chybových odpovědí, které jste definovali v konfiguračním souboru.

Dočasné zakázání mock objektů

Pokud v konfiguračním souboru používáte mocky, můžete je dočasně zakázat pomocí možnosti --no-mocks.

devproxy --no-mocks

Další krok

Další informace o nástroji GenericRandomErrorPlugin.