Microsoft Graph API-k hibáinak szimulálása

Egy pillantással
Cél: Annak tesztelése, hogy az alkalmazás hogyan kezeli a Microsoft Graph API-hibákat
Idő: 10 perc
Beépülő modulok:GraphRandomErrorPlugin
Előfeltételek:Fejlesztői proxy beállítása

A Microsoft Graph olyan API-k gyűjteménye, amelyek hozzáférést biztosítanak a Microsoft 365-höz kapcsolódó adatokhoz és elemzésekhez. Amikor a Microsoft Graphot használja az alkalmazásban, tesztelnie kell, hogyan kezeli az alkalmazás az API-hibákat. A Dev Proxy segítségével szimulálhat hibákat bármely Microsoft Graph API-n a GraphRandomErrorPlugin használatával.

A GraphRandomErrorPlugin Microsoft Graphtal való együttműködésre van optimalizálva, és szimulálja a Microsoft Graph által visszaadható konkrét hibákat.

Első lépésként engedélyezze a GraphRandomErrorPlugin elemet a konfigurációs fájlban.

Fájl: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "graphRandomErrorPlugin",
      "urlsToWatch": [
        "https://graph.microsoft.com/v1.0/*",
        "https://graph.microsoft.com/beta/*",
        "https://graph.microsoft.us/v1.0/*",
        "https://graph.microsoft.us/beta/*",
        "https://dod-graph.microsoft.us/v1.0/*",
        "https://dod-graph.microsoft.us/beta/*",
        "https://microsoftgraph.chinacloudapi.cn/v1.0/*",
        "https://microsoftgraph.chinacloudapi.cn/beta/*"
      ]
    }
  ]
}

Tipp.

A fenti kódrészlet minden Microsoft-felhőben figyeli a Microsoft Graphhoz érkező kéréseket. Ha csak egy adott Microsoft-felhőben szeretne hibákat szimulálni, távolítsa el a szükségtelen URL-címeket.

Indítsa el a dev proxyt a konfigurációs fájllal, és az alkalmazással ellenőrizze, hogyan kezeli a hibákat. Minden egyező kérés esetében a Dev Proxy meghatározza, hogy szimuláljon-e egy hibát, vagy átadja a kérést a Microsoft Graphnak a konfigurált hibaarány használatával. Ha a Dev Proxy hibát szimulál, véletlenszerűen kiválasztja a Microsoft Graph által használt hibák egyikét, és hibaüzenetet ad vissza az alkalmazásnak.

Hibák konfigurálása szimulálásához

Alapértelmezés szerint a GraphRandomErrorPlugin következő hibákat szimulálja.

HTTP-metódus Lehetséges hibák
GET 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable504 Gateway Timeout
POST 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable504 Gateway Timeout507 Insufficient Storage
PUT 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable504 Gateway Timeout507 Insufficient Storage
PATCH 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable504 Gateway Timeout
DELETE 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable504 Gateway Timeout507 Insufficient Storage

Ha konkrét viselkedéseket, például a fojtást szeretne tesztelni, úgy konfigurálja a beépülő modult, hogy csak a releváns hibákat használja a --allowed-errors beállítással.

devproxy --allowed-errors 429

Másik lehetőségként konfigurálhatja a allowedErrors tulajdonságot az graphRandomErrorPlugin objektumban a konfigurációs fájlban.

Fájl: devproxyrc.json

{
  "graphRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/graphrandomerrorplugin.schema.json",
    "allowedErrors": [ 429 ]
  }
}

A fejlesztői proxy csak az egyes HTTP-metódusokra vonatkozó engedélyezett hibákat használja az előző táblázatban felsoroltak szerint. Ha az engedélyezett hibák egyike sem vonatkozik egy metódusra, a Dev Proxy az adott metódust használó kéréseket továbbítja a Microsoft Graph felé. Ha például csak a 507 engedélyezi, a Dev Proxy meghiúsítja a POST, PUT és DELETE kéréseket, de átengedi a GET és PATCH kéréseket. A fejlesztői proxy a kéréseket olyan metódusokkal is továbbítja, amelyek nem szerepelnek a táblázatban, például HEAD vagy OPTIONS.

Hibák szimulálása a Microsoft Graph kötegkérelmeiben

A Dev Proxy ugyanúgy szimulálja a Microsoft Graphra irányuló kötegelt kérelmek hibáit, mint a normál kérések esetében. Ha a Dev Proxy egy kötegelt kérelem egy vagy több kérését sikertelenül teljesíti, a teljes kötegelt kérelemre a Microsoft Graphhoz hasonlóan 424 Failed Dependency választ ad vissza.

Ha a köteg bármely kérése olyan metódust használ, amelyre az engedélyezett hibák egyike sem vonatkozik, a Dev Proxy átadja a teljes köteget a Microsoft Graphnak, mert a kötegválasznak tartalmaznia kell egy választ a köteg minden kérésére.

Lásd még