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 konfigurační soubor.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-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 urlsToWatch vlastnosti s modulem plug-in. 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/microsoft/dev-proxy/main/schemas/v0.20.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í napodobení

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

devproxy --no-mocks

Další krok

Další informace o nástroji GenericRandomErrorPlugin.