bra jobb. Nu måste du ansluta din mobila enhet till mitmproxy och låta den fånga HTTP-trafiken.
https://docs.mitmproxy.org/stable/overview-getting-started/
- Ställ in proxy på nätverket på din enhet (proxy-IP är IP där du kör mitmproxy.
- besök http://mitm.it från webbläsaren på din mobila enhet.
- installera proxy baserat på typen av din mobila enhet.
OK, låt oss gå tillbaka till den öppna sidan — http://127.0.0.1:8081/ — och starta appen du testar. Såg du trafik mellan appen och backend? Bingo!
det finns tre applikationer som mitmproxy kan ge scenarier för:
- mitmproxy-om du gillar terminal console, och vill använda den i server bara läge.
- mitmweb — om du föredrar den webbaserade konsolen.
- mitmdump-om du vill spela in / spela upp HTTP-trafiken.
de flesta funktioner är tillgängliga med de tre alternativen också. För mer information, besök detta dokument— https://docs.mitmproxy.org/archive/v4/concepts-options/
vad innebar testningen?
Låt oss börja testa. Först och främst var jag tvungen att ta reda på om vår app kommunicerade med backend. Detta innebar att man öppnade testappen på mobilen och använde filterfältet på mitmproxy web console.
HTTP-begäran och svaret förväntades. Jag kunde sedan se alla detaljer i den högra panelen.
när du använder mitmproxy-appen kan jag se samma data men med en annan konsol GUI.
nästa steg var att simulera vissa falska data i begäran API. Efter att ha arbetat med API-bidraget ändrade jag det färdigaberäkningar i förfrågningsorganet till 100 och observerade vad som hände.
jag satte begäran URL i Avlyssningsfältet och använde appen för att utlösa API-begäran. Jag kunde då se begäran i mitmproxy med olika färger och en ’paus’ – ikon.
genom att klicka på kryssrutan på den högra panelen tog jag mig till redigeringsläge, där jag kunde ändra de slutfördaberäkningarna till 100 i nyttolasten.
jag klickade på Fortsätt-knappen på fliken flöde, som pausade den igen eftersom den avbryts som svar på API-begäran. Dags att klicka på Fortsätt igen.
framgång! Det passerade 100 som completedCalculation till backend, som jag kunde verifiera.
det är möjligt att ändra svarsdata på samma sätt också.
så kan vi använda mitmproxy för att felsöka vår mobilapp.
hitta och rapportera en bugg
när du använder mitmproxy, jag hittade och rapporterade en bugg. Innan diagnostik kördes ville våra utvecklare ha detaljer om HTTP-förfrågningarna.
men hur kunde jag göra det här? Ska jag kopiera och klistra in alla begäran / svarsdata till felhanteringssystemet eller en fil och dela med utvecklaren? Eller finns det ett bättre sätt?
jag körde kommandot nedan i Terminal, som startade inspelningsläget.
mitmdump -w outfile
nästa jag öppnade appen och reproducerade frågan om felet. När stegen var klar, alla trafikdata skulle sparas i”outfile”.
jag kunde sedan dela den här filen till utvecklingsteamet, och de kunde helt enkelt köra kommandot nedan för att spela upp det.
mitmdump -nC outfile
för mer information, se https://docs.mitmproxy.org/stable/overview-features/#client-side-replay
vad mer kan jag göra med mitmproxy?
min erfarenhet av mitmproxy fick mig att tänka…
- hur kan jag simulera mer komplicerade scenarier och data?
- Hur kan jag använda mitmproxy i vårt automatiseringstestramverk?
svaren på dessa frågor kräver ett Python-skript. Om du inte är bekant med Python kan du behöva ta reda på om det finns ett tillägg för mmitmproxy som kan fungera med andra språk.
jag skrev följande Python-skript, försökte fånga en begäran och skrev sedan om svaret.
för att starta mitmproxy med skriptet kan du använda valfritt kommando nedan:
mitmproxy -s proxy.pymitmweb -s proxy.pymitmdump -s proxy.py
öppna appen, fortsätt teststegen så ser du att svaret har skrivits om.
vårt automatiseringstestramverk är baserat på NodeJS (Javascript), så för att integrera mitmproxy måste vi ringa skriptet i en delprocess. Upptäck mer här— https://docs.mitmproxy.org/stable/addons-scripting/
slutliga tankar
Tänk på att den här artikeln endast täcker mitmproxys mest grundläggande funktioner. Det finns flera avancerade funktioner som jag inte pratade om.
när vi pratar om gratis och öppen källkodsverktyg är det naturligt att anta att de är svåra att använda, instabila och inte har tillräckligt med dokumentation.
men kände jag mig så här om mitmproxy? Alls.
det är lätt att komma igång med, pålitlig 99% av tiden och riktigt flexibel. Det är också gratis!
jag hoppas att du har haft denna introduktion till mitmproxy. Det skulle vara bra att höra dina tankar om du också har försökt.