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.
- Starta Dev Proxy. Öppna en kommandotolksession. Ange
devproxy
och tryck på Retur. - Förtroendecertifikat. Dev Proxy installerar ett certifikat med namnet
Dev Proxy CA
. En varning visas. VäljYes
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. - 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.
- Starta Dev Proxy. Öppna en kommandotolksession. Ange
devproxy
och tryck på Retur. - 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. - Acceptera inkommande anslutningar. En varning visas. Välj
Allow
för att bekräfta.
Starta Dev Proxy. Öppna en kommandotolksession. Ange
devproxy
och tryck på Retur.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:
- Avlyssna begäranden som görs till en JSON-platshållar-API-slutpunkt
- Simulera API-felsvar och API-begränsning med en felfrekvens på 50 %
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 curl
skickar 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ån50
till100
.
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.
- GenericRandomErrorPlugin-plugin-programmet ger Dev Proxy möjlighet att svara med ett felsvar.
- RetryAfterPlugin-plugin-programmet ger dev proxy möjlighet att mata in ett dynamiskt värde i återförsökshuvudet i felsvaret.
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 matrisen
plugins
. Observera värdet förconfigSection
egenskapen. - Leta upp objektet längre ned i
genericRandomErrorPlugin
filen. Observera värdet förerrorsFile
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 svaret429
.
{
"$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.