Dela via


Kom igång med Dev Proxy

Dev Proxy är ett kommandoradsverktyg som hjälper dig att simulera beteenden och fel i moln-API:er som hjälper dig att skapa motståndskraftiga appar.

I den här självstudien lär du dig hur du installerar, kör och konfigurerar Dev Proxy.

Om du stöter på några svårigheter, tveka inte att kontakta oss genom att ta upp ett nytt problem och vi är glada att hjälpa dig.

Installera Dev Proxy

Det enklaste sättet att installera Dev Proxy är att använda winget. Du kan också installera Dev Proxy manuellt.

Om du vill installera Dev Proxy med winget kör du följande kommando:

winget install Microsoft.DevProxy --silent

Viktigt!

Installationsprogrammet för Dev Proxy lägger till en ny post i PATH. Om du vill använda Dev Proxy efter installationen måste du starta om kommandotolken för att säkerställa att PATH-miljövariablerna har uppdaterats.

Kommentar

Om du vill prova de senaste förhandsversionsfunktionerna installerar du betaversionen av Dev Proxy.

Om du vill installera Dev Proxy med winget kör du följande kommando:

winget install Microsoft.DevProxy.Beta --silent

Så här kör du betaversionen av Dev Proxy devproxy-beta

Det enklaste sättet att installera Dev Proxy är att använda Homebrew. Du kan också installera Dev Proxy manuellt.

Om du vill installera Dev Proxy med Homebrew kör du följande kommandon:

brew tap microsoft/dev-proxy
brew install dev-proxy

Kommentar

Om du vill prova de senaste förhandsversionsfunktionerna installerar du betaversionen av Dev Proxy.

Om du vill installera Dev Proxy med Homebrew kör du följande kommandon:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Så här kör du betaversionen av Dev Proxy devproxy-beta

Det enklaste sättet att installera Dev Proxy är med hjälp av installationsskriptet. Du kan också installera Dev Proxy manuellt.

Om du vill installera Dev Proxy med installationsskriptet kör du följande kommandon:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

Om du använder PowerShell kör du följande kommando:

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

Kommentar

Om du vill prova de senaste förhandsversionsfunktionerna installerar du betaversionen av Dev Proxy.

Om du vill installera Dev Proxy med installationsskriptet kör du följande kommandon:

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

Om du använder PowerShell kör du följande kommando:

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

Så här kör du betaversionen av Dev Proxy devproxy-beta

Starta Dev Proxy för första gången

Första gången du startar Dev Proxy på datorn finns det några steg att följa för att säkerställa att Dev Proxy kan fånga upp begäranden från datorn och svara korrekt. Du behöver inte upprepa de här stegen efter den första körningen.

  1. Starta Dev Proxy. Öppna en kommandotolksession. Ange devproxy och tryck på Retur.
  2. Förtroendecertifikat. Dev Proxy installerar ett certifikat med namnet Dev Proxy CA. En varning visas. Välj Yes för att bekräfta att du vill installera certifikatet. Dev Proxy använder det här certifikatet för att dekryptera HTTPS-trafik som skickas från datorn.
  3. Tillåt brandväggsåtkomst. Windows-brandväggen blockerar proxyn. En varning visas. Välj Allow access knappen för att tillåta trafik genom brandväggen.
  1. Starta Dev Proxy. Öppna en kommandotolksession. Ange devproxy och tryck på Retur.
  2. Förtroendecertifikat. Dev Proxy installerar ett certifikat med namnet Dev Proxy CA, som används för att dekryptera HTTPS-trafik som skickas från datorn. En varning visas. Tryck på y för att bekräfta att du vill lita på certifikatet.
  3. Acceptera inkommande anslutningar. En varning visas. Välj Allow för att bekräfta.
  1. Starta Dev Proxy. Öppna en kommandotolksession. Ange devproxy och tryck på Retur.

  2. Förtroendecertifikat. Dev Proxy använder ett anpassat SSL-certifikat för att dekryptera HTTPS-trafik som skickas från datorn.

    Viktigt!

    Följande instruktioner gäller för Ubuntu. För andra Linux-distributioner kan stegen skilja sig åt.

    Om du vill installera och lita på certifikatet kör du följande kommandon i en ny kommandotolk:

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

Kommandotolken visar följande utdata:

 info    8 error responses loaded from devproxy-errors.json
 info    Dev Proxy API listening on http://localhost:8897...
 info    Dev Proxy Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Som standard är Dev Proxy konfigurerat för att:

Skärningspunktsbegäranden

Dev Proxy fångar upp begäranden som görs till kända URL:er från alla program på datorn. När en begäran identifieras skickar Dev Proxy begäran till API:et (vidta ingen åtgärd) eller returnerar ett svar.

  • Skicka en begäran till JSON-platshållar-API:et från kommandoraden och växla tillbaka till proxyprocessen för att visa utdata.

I PowerShell använder du cmdleten Invoke-WebRequest för att skicka en GET-begäran till JSON-platshållar-API:et.

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

Om du använder curlskickar du en GET-begäran till JSON-platshållar-API:et med hjälp av följande kommando.

curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts

Du kan också använda en API-klient som Postman för att skicka en GET-begäran till https://jsonplaceholder.typicode.com/posts.

En post visas med viss grundläggande information om den inkommande begäran och den åtgärd som Dev Proxy utförde. Dev Proxy simulerar ett felsvar med 50 % chans. Om din begäran inte returnerar ett fel skickar Dev Proxy igenom den.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • Upprepa att begäranden skickas till JSON-platshållar-API:et från kommandoraden tills ett felsvar returneras.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 403 Forbidden

När Dev Proxy returnerar ett felsvar visas en chaos etikett i posten.

  • Prova att skicka begäranden till andra slutpunkter som är tillgängliga i JSON-platshållar-API:et
    • https://jsonplaceholder.typicode.com/posts
    • https://jsonplaceholder.typicode.com/posts/1
    • https://jsonplaceholder.typicode.com/posts/1/comments
    • https://jsonplaceholder.typicode.com/comments?postId=1

Stoppa Dev Proxy på ett säkert sätt

När du inte längre kräver att Dev Proxy körs bör du alltid stoppa den på ett säkert sätt.

  • Tryck på Ctrl + C för att stoppa Dev Proxy på ett säkert sätt.

Om du stänger av kommandotolken avregistrerar Dev Proxy inte korrekt som systemproxy och du kan stöta på några vanliga problem.

Uppdatera URL:erna att titta på

Som standard är Dev Proxy konfigurerat för att fånga upp alla begäranden som görs till JSON-platshållar-API:et. Du kan konfigurera Dev Proxy för att avlyssna begäranden till alla HTTP-API:er.

  • Öppna dev proxy-konfigurationsfilen genom att köra på kommandoraden: devproxy config.
  • Leta upp matrisen urlsToWatch .
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

Matrisen urlsToWatch representerar kända URL:er. Dev Proxy bevakar begäranden från den aktuella posten till valfri slutpunkt. Posten använder en asterisk efter URL:en som ett jokertecken. Om du lägger till fler poster i den här matrisen utökas url:erna som Dev Proxy bevakar.

Anta att du inte vill att Dev Proxy ska avlyssna begäranden som görs till en specifik slutpunkt.

  • Lägg till en ny post i matrisen urlsToWatch .
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

Utropstecknet i början av URL:en uppmanar Dev Proxy att ignorera alla begäranden som matchar url:en. Du kan blanda och matcha utropstecken och asterisker i en URL.

  • På kommandoraden anger devproxy och trycker du på Retur för att starta Dev Proxy.
  • Skicka en begäran till https://jsonplaceholder.typicode.com/posts/2 från kommandoraden och visa utdata.

När en ignorerad URL matchas med en begäran bearbetas inte dev proxy-begäran, så inga utdata visas.

I vilken ordning URL:erna visas i matrisen urlsToWatch är det viktigt. Dev Proxy bearbetar dessa URL:er i ordning. När en URL matchar bearbetas den inte igen. Genom att först placera URL:en ser du därför till att begäran ignoreras innan nästa URL bearbetas.

Ändringsfelfrekvens

Som standard är Dev Proxy konfigurerat för att misslyckas begäranden med 50 % chans till URL:er som övervakas. Du kan öka eller minska risken för att en begäran returnerar ett felsvar.

Nu ska vi uppdatera felfrekvensen så att varje begäran till JSON-platshållar-API:et returnerar ett felsvar.

  • Öppna dev proxy-konfigurationsfilen genom att köra på kommandoraden: devproxy config.
  • rate Leta upp egenskapen och uppdatera värdet från 50 till 100.

Filen devproxyrc.json innehåller konfigurationsinställningar som används när du startar Dev Proxy. När du ändrar konfigurationsinställningarna bör du alltid stoppa och starta Dev Proxy för att ändringarna ska sparas.

  • På kommandoraden anger devproxy och trycker du på Retur för att starta Dev Proxy.
  • Skicka en begäran till JSON-platshållar-API:et från kommandoraden och visa utdata.

Du kan också åsidosätta konfigurationsinställningarna vid körning med hjälp --failure-rate av alternativet när du startar Dev Proxy.

devproxy --failure-rate 100
  • Tryck på Ctrl + C för att stoppa Dev Proxy på ett säkert sätt.

Simulera begränsning

Som standard returnerar Dev Proxy ett intervall med allmänna 400- och 500-felsvar. Du kan anpassa dessa felsvar efter dina egna behov.

Dev Proxy använder plugin-program för att aktivera olika API-beteenden, som standard aktiverar vi två plugin-program åt dig.

Nu ska vi ändra konfigurationen så att Dev Proxy alltid returnerar ett 429 Too Many requests felsvar för att simulera begränsning.

Först ska vi leta upp platsen för filen som innehåller feldefinitionerna.

  • Öppna dev proxy-konfigurationsfilen genom att köra på kommandoraden: devproxy config.
  • Leta upp posten för plugin-programmet GenericRandomErrorPlugin i matrisenplugins. Observera värdet för configSection egenskapen.
  • Leta upp objektet längre ned i genericRandomErrorPlugin filen. Observera värdet för errorsFile egenskapen.

Dricks

Platsen för felfilen visas också i utdata när du startar Dev Proxy.

  • Öppna i en textredigerare i installationsmappen devproxy-errors.json Dev Proxy.
  • Ta bort alla svarsposter i matrisen responses , förutom svaret 429 .
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://jsonplaceholder.typicode.com/*"
      },
      "responses": [
        {
          "statusCode": 429,
          "body": {
            "message": "Too Many Requests",
            "details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
          },
          "headers": {
            "Retry-After": "@dynamic"
          }
        }
      ]
    }
  ]
}
  • På kommandoraden anger devproxy och trycker du på Retur för att starta Dev Proxy.
  • Skicka en begäran till JSON-platshållar-API:et från kommandoraden och visa utdata.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Tryck på Ctrl + C för att stoppa Dev Proxy på ett säkert sätt.

Gå vidare

Lär dig hur du använder Dev Proxy för att simulera slumpmässiga fel för ditt eget program.