2016-07-19 17 views
0

Ich arbeite an einem Mac und ich versuche, eine bestimmte App auf einem iPhone zu automatisieren und irgendwann bin ich verpflichtet, die Anfrage zu überprüfen, die App sendet an einen Dienst (genauer gesagt eine JSON-Anfrage). Ich verwende Appium, um eine Verbindung zum Telefon herzustellen, und Python, um die Skripte zu schreiben.Abfangen der Anfrage von einer iOS-App an einen Service senden, von Python und Appium

Ich bin mir bewusst, dass Instrumente eine Netzwerkfunktionalität hat, mit der Sie den Netzwerkverkehr der App überprüfen können, aber ich bin nicht sicher, ob es auch die JSON-Anfrage anzeigt.

Also, ich bin auf der Suche nach einer Wartezeit, um die JSON-Anfrage abzufangen und einige Behauptungen im Python-Skript zu machen. Kennt jemand einige Methoden?

+0

Was genau ist der Zweck, dies zu erfassen und Behauptungen in einem Python-Skript zu tun? Wenn Sie nur die richtigen Anrufe testen möchten, sollten Sie dies in einem Komponententest mit einem Stub tun, um Ihren Netzwerkanruf zu erfassen. – Hodson

+0

Es gibt viele Gründe, warum eine Person es tun möchte. Wenn die App erstellt wird, müssen wir die Funktionalität der App während der Integrationsphase testen, um sicherzustellen, dass die richtigen Netzwerkanrufe zum richtigen Zeitpunkt erfolgen. Ich habe Tonnen dieser Fälle funktionell für meine App automatisiert. – vishal

Antwort

1

Ich hatte die ähnliche Frage vor ein paar Monaten und einige Dummheiten, die nicht einmal im Entferntesten mit Automatisierung beschäftigt sind, gaben mir auch Stimmen. Aber Sie haben zwei Lösungen für dieses Problem. Ich bin mir nicht sicher über die Funktionalität der Instrumente und werde sie daher nicht kommentieren.

1) Verwenden Sie ideicesyslog, um im Grunde alle Protokolle für Ihre App im Terminal zu betrachten, senden Sie sie an eine Datei und analysieren Sie die Datei mit allem, wonach Sie suchen. mehr Infos hier http://krypted.com/tag/idevicesyslog/

Aber natürlich App-Logs müssen eingeschaltet sein, damit dies funktioniert.

2) Sie müssen einen Proxy verwenden, um grundsätzlich die HTTP-Requests zu erfassen, die Ihre App erstellt. Heute ist der meiste Verkehr, der kommerziell gesendet wird, allesamt HTTPS, sodass Sie möglicherweise Probleme mit Zertifikat mit gesichertem Datenverkehr bekommen. Für die gesicherten Anforderungen an die Arbeit benötigen Sie einen stabilen Proxy, der den Verkehr mit Zertifikaten und allem anderen abhört. Ich würde empfehlen, sich Charles Proxy anzusehen. Weitere Informationen hier Charles

+0

Ok, nehme ich an, ich benutze Charles Proxy, gibt es eine Möglichkeit, die Daten zu extrahieren, die charles aus einem Python-Skript sammelt? –

+0

Ja, es bietet eine API und Web-Schnittstelle, die Sie steuern und exportieren Sie Ihre Sitzungsdaten in XML, HAR oder CSV-Datei und nur die Datei analysieren können. lassen Sie mich wissen, wenn Sie weitere Fragen haben. Bitte akzeptieren Sie auch die Antwort, wenn es Ihre Frage gelöst hat. – vishal

+0

Ich akzeptierte die Antwort :). Vielen Dank! –