goed werk. Nu moet je je mobiele apparaat aan te sluiten op de mitmproxy, en laat het het HTTP-verkeer te vangen.
https://docs.mitmproxy.org/stable/overview-getting-started/
- Stel de proxy in op het netwerk op uw apparaat (het proxy-IP is het IP waar u de mitmproxy draait.
- bezoek http://mitm.it vanuit de browser op uw mobiele apparaat.
- installeer de proxy op basis van het type van uw mobiele apparaat.
OK, laten we teruggaan naar de open pagina — http://127.0.0.1:8081/ — en de app starten die u test. Heb je verkeer tussen de app en de backend gezien? Bingo!
er zijn drie toepassingen waarmee mitmproxy scenario ‘ s voor:
- mitmproxy – als je van terminal console, en zou willen gebruiken in server alleen modus.
- mitmweb – als u liever de webpagina gebaseerde console.
- mitmdump-Als u het HTTP-verkeer wilt opnemen / opnieuw afspelen.
de meeste functies zijn ook beschikbaar met de drie opties. Voor meer informatie, bezoek dit doc— https://docs.mitmproxy.org/archive/v4/concepts-options/
wat hield de test in?
laten we beginnen met testen. Allereerst, Ik moest uitzoeken of onze app gecommuniceerd met de backend. Dit betekende het openen van de test app op mobiel en het gebruik van het filter veld op mitmproxy web console.
het HTTP verzoek en antwoord werd verwacht. Ik kon dan alle details in het rechterpaneel bekijken.
bij het gebruik van de mitmproxy app, Ik kan dezelfde gegevens bekijken, maar met een andere console GUI.
de volgende stap was om een aantal valse gegevens te simuleren in het verzoek API. Na het werken aan de bijdrage API, ik veranderde de completeberekeningen in het verzoek lichaam 100 en waargenomen wat er gebeurde.
ik plaatste de URL van het verzoek in het Intercept-veld en gebruikte de app om het API-verzoek te activeren. Ik kon dan zien het verzoek in mitmproxy met verschillende kleuren en een’ pauze ‘ icoon.
klikken op de Vink knop op het rechterpaneel nam me in editor modus, waar ik kon veranderen van de voltooide calculaties naar 100 in de payload.
ik klikte op de knop Hervatten in het tabblad stroom, die het opnieuw onderbroken omdat het wordt onderbroken in reactie op de API-verzoek. Tijd om opnieuw op Hervatten te klikken.
succes! Het passeerde de 100 als voltooidcalculation aan de backend, die ik kon verifiëren.
het is mogelijk om de responsgegevens op dezelfde manier te wijzigen.
zo kunnen we mitmproxy gebruiken om onze mobiele app te debuggen.
een bug
vinden en rapporteren tijdens het gebruik van mitmproxy, heb ik een bug gevonden en gerapporteerd. Voor het uitvoeren van diagnostiek, onze ontwikkelaars wilden details van de HTTP-verzoeken.
maar hoe kon ik dit doen? Moet ik alle request / response data kopiëren en plakken naar het bug management systeem of een bestand en delen met de ontwikkelaar? Of is er een betere manier?
ik heb het onderstaande commando uitgevoerd in Terminal, waarmee de opnamemodus is gestart.
mitmdump -w outfile
vervolgens heb ik de app geopend en het probleem van de bug gereproduceerd. Zodra de stappen waren voltooid, alle verkeer gegevens zou worden opgeslagen in”outfile”.
ik kan dit bestand dan delen met het ontwikkelteam, en ze kunnen gewoon het onderstaande commando uitvoeren om het opnieuw af te spelen.
mitmdump -nC outfile
voor meer informatie, zie https://docs.mitmproxy.org/stable/overview-features/#client-side-replay
wat kan ik nog meer doen met mitmproxy?
mijn ervaring met mitmproxy zette me aan het denken…
- Hoe kan ik complexere scenario ‘ s en datas simuleren?
- Hoe kan ik mitmproxy gebruiken in ons automation test framework?
de antwoorden op deze vragen vereisen een Python-script. Als je niet bekend bent met Python, moet je misschien uitzoeken of er een add-on is voor mmitmproxy die kan werken met andere talen.
ik schreef het volgende Python-script, probeerde een verzoek op te vangen en herschreef het antwoord.
om mitmproxy met het script te starten, kun je elk commando hieronder gebruiken:
mitmproxy -s proxy.pymitmweb -s proxy.pymitmdump -s proxy.py
Open de app, ga verder met de teststappen, en je zult zien dat de reactie is herschreven.
ons automation test framework is gebaseerd op NodeJS (Javascript), dus om mitmproxy te integreren, moeten we het script in een subproces aanroepen. Ontdek hier meer— https://docs.mitmproxy.org/stable/addons-scripting/
Final thoughts
houd in gedachten dat dit artikel alleen betrekking heeft op de meest fundamentele functies van mitmproxy. Er zijn verschillende geavanceerde functies waar ik het niet over had.
als we het hebben over vrije en open source tools, is het natuurlijk om aan te nemen dat ze moeilijk te gebruiken, onstabiel zijn en niet genoeg documentatie bevatten.
maar voelde ik me zo over mitmproxy? Geenszins.
het is gemakkelijk om te beginnen, betrouwbaar 99% van de tijd en echt flexibel. Ook is het gratis!
ik hoop dat u genoten hebt van deze introductie tot mitmproxy. Het zou geweldig zijn om je gedachten te horen als je het ook eens hebt geprobeerd.