Mobile Apps
Automatisch aus dem Englischen übersetzt.
Auf Englisch lesenMobile UI-Tests nutzen Proxy Mail QA genauso wie Web-Tests: Testadresse erstellen, in den Registrierungsbildschirm der App eingeben und dann auf den Code oder Link aus der E-Mail warten. Die Helfer auf diesen Seiten sind reiner Testcode. Nichts davon landet in der App, die du auslieferst.
Jeder Helfer macht dasselbe, in seiner eigenen Sprache:
- Testadresse erstellen mit einem Passwort für das Formular und auf Wunsch einem Geburtsdatum, Land oder einer Umgebung.
- Auf den Code oder Link warten, einschließlich des Links, der die App öffnet, und einen bereits verwendeten Code überspringen.
- E-Mail prüfen: zählen, was angekommen ist (genau eine, nicht zwei), sie prüfen (SPF, DKIM, DMARC, lokale oder http-Links, wohin ihr Link führt) oder prüfen, dass nichts ankommt.
- Als gespeichertes Konto anmelden oder eines ausleihen, das kein anderer Test hat, während Tests parallel laufen.
- Im Pull Request berichten: Mit der GitHub Action wird jeder Aufruf Teil des Laufs des Jobs, benannt nach seinem Test.
| Deine Tests | Anleitung |
|---|---|
| Maestro (natives iOS und Android, React Native, Flutter) | Maestro |
| XCUITest in Xcode (Swift) | iOS (XCUITest) |
| Espresso oder UI Automator in Android Studio (Kotlin) | Android (Espresso) |
Flutter integration_test (Dart) |
Flutter |
| Detox oder Appium (JavaScript) | Detox und Appium |
| Ein Coding-Agent, der den iOS Simulator steuert | iOS-Apps mit einem Coding-Agent |
| Ein Coding-Agent, der den Android Emulator steuert | Android-Apps mit einem Coding-Agent |
Was auf jeder Plattform zu prüfen ist (Links beim Kaltstart, App Links, die Chrome öffnen, exp://-Links, Firebase-Anmeldung per E-Mail-Link), steht in den Anleitungen für mobile Apps.
Halte den API-Schlüssel aus der App heraus
Abschnitt betitelt „Halte den API-Schlüssel aus der App heraus“Jede Anleitung liest den API-Schlüssel aus dem Testlauf: aus einer Umgebungsvariable, einem Instrumentierungsargument oder einem --dart-define. Speichere ihn in den Secrets deines CI. Füge ihn nie zur Konfiguration oder Info.plist der App hinzu, wo jeder mit der App ihn lesen könnte.
Ein --dart-define wird in den Build kompiliert, dem er übergeben wurde, also enthält ein Flutter-Test-Build den Schlüssel. Gib diesen Build an niemanden weiter, weder über TestFlight, Firebase App Distribution noch einen Store: Baue den Build, den du teilst, ohne ihn.
Einen Verifizierungs- oder Magic Link in der App öffnen
Abschnitt betitelt „Einen Verifizierungs- oder Magic Link in der App öffnen“Der Link in der E-Mail ist meist ein https-Link, der die App öffnet: ein Universal Link auf iOS, ein App Link auf Android. Öffne ihn auf dem Gerät, nicht in einem Desktop-Browser:
| Wo | Wie |
|---|---|
| XCUITest | XCUIApplication().open(url) |
| Espresso | startActivity mit einem ACTION_VIEW-Intent (siehe Anleitung) |
| Maestro | - openLink: ${output.link} |
| Detox | device.openURL({ url }) |
| Appium | driver.execute('mobile: deepLink', { url, package }) (Android) oder { url, bundleId } (iOS) |
| Von Hand, iOS-Simulator | xcrun simctl openurl booted '<link>' |
| Von Hand, Android-Emulator | adb shell "am start -W -a android.intent.action.VIEW -d '<link>'" |
Links mit dem eigenen Schema der App, wie myapp://verify?token=… oder exp://…/--/verify von Expo, werden ebenfalls erkannt und genauso eingeordnet: Das Warten auf einen Link gibt sie zurück. Hat eine E-Mail für dasselbe sowohl einen Web-Link als auch einen App-Link, kommt der Web-Link zuerst; den App-Link bekommst du mit app=true (jeder Helfer hat eine app-Option). GET /v1/addresses/{address}/messages listet alle Links jeder E-Mail auf. Proxy Mail QA öffnet nie Links, und die App sowie die Chrome-Erweiterung lassen dich App-Links nur kopieren, mit den Simulator- und Emulator-Befehlen daneben im Posteingang.
Codes in einzelnen Feldern
Abschnitt betitelt „Codes in einzelnen Feldern“Viele Apps zeigen ein Feld pro Ziffer des Codes. Tippe den ganzen Code ins erste Feld: Die meisten solcher Felder springen bei jeder Ziffer zum nächsten. Wenn deins das nicht tut, tippe eine Ziffer in jedes Feld. Prüfe vor dem Absenden, dass jedes Feld seine Ziffer hat: Ein unvollständiger Code zählt als Fehlversuch, und viele Apps sperren das Konto nach wenigen davon.
Die E-Mail prüfen, nicht nur den Code
Abschnitt betitelt „Die E-Mail prüfen, nicht nur den Code“Wenn der Code oder Link angekommen ist, prüfe auch die E-Mail: checkEmail mit der Domain, die die Links deiner App öffnen (ihre Universal-Link- oder App-Link-Domain), gibt die fehlgeschlagenen Prüfungen zurück, und countEmails erkennt eine versehentlich gesendete zweite E-Mail. Jede Anleitung zeigt sie in ihrer Sprache, und die REST API erklärt, was jede Prüfung bedeutet.
Gegen einen Server auf deinem Computer testen
Abschnitt betitelt „Gegen einen Server auf deinem Computer testen“Der iOS-Simulator erreicht deinen Computer unter localhost. Der Android-Emulator nicht: Er erreicht deinen Computer unter 10.0.2.2. Wenn die App Verifizierungslinks an localhost sendet, öffnen sie sich nicht auf einem Emulator; siehe Links testen, die auf localhost zeigen.
Die E-Mail-Prüfungen lassen Links zu localhost oder einer privaten Adresse durchfallen, weil echte Nutzer sie nicht öffnen könnten. Solange du gegen deinen eigenen Computer testest, füge seinen Host (etwa localhost:3000 oder 10.0.2.2:3000) in den Projekteinstellungen oder mit POST /v1/project/dev-hosts zu den Dev-Umgebungen des Projekts hinzu, dann bestehen Links dorthin.
Textnachrichten
Abschnitt betitelt „Textnachrichten“Proxy Mail QA verarbeitet nur E-Mail. Per SMS gesendete Codes brauchen ein anderes Tool.
Eine Frage zu dieser Seite?
Frag in jeder Sprache. Die Doku kann dir sofort antworten oder deine Frage an das Team von Proxy Mail QA schicken, das auf Englisch antwortet.