Simulare gli errori dalle API Microsoft Graph

A colpo d'occhio
Obiettivo: Testare il modo in cui l'app gestisce gli errori dell'API Microsoft Graph
Tempo: 10 minuti
Plugins:GraphRandomErrorPlugin
Prerequisiti:Configurare il proxy di sviluppo

Microsoft Graph è una raccolta di API che consentono di accedere ai dati e alle informazioni dettagliate su Microsoft 365. Quando si usa Microsoft Graph nell'app, è necessario testare il modo in cui l'app gestisce gli errori dell'API. Dev Proxy consente di simulare gli errori in qualsiasi API Microsoft Graph usando GraphRandomErrorPlugin.

GraphRandomErrorPlugin è ottimizzato per lavorare con Microsoft Graph e simula gli errori specifici che Microsoft Graph può restituire.

Per iniziare, abilita il GraphRandomErrorPlugin nel file di configurazione.

File: 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/*"
      ]
    }
  ]
}

Suggerimento

Il frammento di codice precedente è in ascolto delle richieste a Microsoft Graph in tutti i cloud Microsoft. Se si vogliono simulare solo gli errori in un cloud Microsoft specifico, rimuovere gli URL non necessari.

Avviare Dev Proxy con il file di configurazione e usare l'app per vedere come gestisce gli errori. Per ogni richiesta corrispondente, Dev Proxy determina se simulare un errore o passare la richiesta a Microsoft Graph usando la frequenza di errore configurata. Quando Dev Proxy simula un errore, seleziona in modo casuale uno degli errori usati da Microsoft Graph e restituisce una risposta di errore all'app.

Configurare gli errori da simulare

Per impostazione predefinita, GraphRandomErrorPlugin simula gli errori seguenti.

HTTP method (Metodo HTTP) Possibili errori
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 Unavailable, 504 Gateway Timeout507 Insufficient Storage
PUT 429 Too Many Requests, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 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 Unavailable, 504 Gateway Timeout507 Insufficient Storage

Se si desidera testare comportamenti specifici, ad esempio la limitazione della larghezza di banda, configurare il plug-in per utilizzare soltanto gli errori rilevanti usando l'opzione --allowed-errors.

devproxy --allowed-errors 429

In alternativa, è possibile configurare la allowedErrors proprietà nell'oggetto graphRandomErrorPlugin nel file di configurazione.

File: devproxyrc.json

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

Dev Proxy usa solo gli errori consentiti che si applicano a ogni metodo HTTP, come indicato nella tabella precedente. Se nessuno degli errori consentiti si applica a un metodo, Dev Proxy inoltra le richieste con tale metodo a Microsoft Graph. Ad esempio, se si consente solo 507, Dev Proxy blocca le richieste POST, PUT e DELETE, ma passa attraverso le richieste GET e PATCH. Il proxy di sviluppo passa anche attraverso le richieste con metodi non elencati nella tabella, ad esempio HEAD o OPTIONS.

Simulare gli errori nelle richieste batch di Microsoft Graph

Dev Proxy simula gli errori nelle richieste batch a Microsoft Graph allo stesso modo delle richieste regolari. Quando Dev Proxy fallisce in una o più richieste all'interno di un batch, restituisce una 424 Failed Dependency risposta per l'intero batch, proprio come farebbe Microsoft Graph.

Se una richiesta nel batch usa un metodo per cui nessuno degli errori consentiti si applica, Dev Proxy passa l'intero batch a Microsoft Graph, perché una risposta batch deve includere una risposta per ogni richiesta nel batch.

Vedere anche