Sobes.tech
Middle+

Berichten Sie von Fällen der Überprüfung der Wiederverbindung in der mobilen Anwendung.

sobes.tech KI

Antwort von AI

Rekonnexitätstests überprüfen, wie sich eine mobile Anwendung verhält, wenn die Verbindung zum Server oder anderen Netzwerkressourcen verloren geht und wiederhergestellt wird.

Test-Szenarien:

  • Netzwerkwechsel:
    • Wi-Fi -> Mobiles Internet (LTE/5G).
    • Mobiles Internet (LTE/5G) -> Wi-Fi.
    • Wi-Fi (ein Punkt) -> Wi-Fi (ein anderer Punkt).
  • Signalverlust:
    • Eintritt in eine abgedeckte Zone (Aufzug, U-Bahn).
    • Aktivieren/Deaktivieren des "Flugmodus".
    • Erzwingen des Ausschaltens der Netzwerkschnittstellen (Wi-Fi, Mobile Daten) über die Geräteeinstellungen.
  • Serverprobleme:
    • API vorübergehend nicht verfügbar.
    • Serverneustart.
    • Netzwerklatenzen (durch Proxys simuliert).

Was wir überprüfen:

  • UI/UX-Verhalten:
    • Anzeige von Lade- oder Fehlerindikatoren.
    • Beibehaltung des aktuellen Benutzerzustands (z.B. unvollständige Eingabe, Listenposition).
    • Korrekte Anzeige von Benachrichtigungen über Verbindungsverlust/-wiederherstellung.
    • Keine Abstürze oder "Hänger" der Anwendung.
  • Datenintegrität:
    • Daten, die während der Trennung gesendet/empfangen wurden, müssen nach der Wiederherstellung korrekt verarbeitet werden.
    • Lokal gespeicherte Daten müssen mit dem Server synchronisiert werden.
  • Wiederholungsversuche (Retry-Logik):
    • Die Anwendung sollte eine Logik für wiederholte Versuche mit exponentiellem Backoff haben.
    • Limits für die Anzahl der Versuche und die Wartezeit.
  • Sitzungsverwaltung:
    • Die Benutzersitzung sollte gespeichert oder korrekt wiederhergestellt werden, ohne dass ein erzwungenes Logout erfolgt.

Tools und Techniken:

  • Netzwerk-Proxies: Charles Proxy, Fiddler. Ermöglichen die Simulation von Verzögerungen, Paketverlusten, Blockieren von Anfragen.
  • Netzwerk-Utilities: Entwickler-Tools im Browser (für Webview), spezialisierte mobile Utilities zur Traffic-Kontrolle.
  • "Flugmodus": Einfache Methode, um einen vollständigen Verbindungsausfall zu simulieren.
  • Deaktivieren der Netzwerkschnittstellen: Über die Systemeinstellungen des Geräts.
  • Netzwerksimulatoren: Tools, die die Simulation verschiedener Netzwerkbedingungen (Geschwindigkeit, Latenz, Paketverlust) ermöglichen.
  • Automatisierung: Verwendung von Appium, Espresso (Android), XCUITest (iOS) zur Automatisierung von Szenarien mit Netzwerkwechsel oder Systemfunktionaufrufen (Aktivieren/Deaktivieren des Flugmodus).
// Beispiel für Automatisierungstest der Rekonnektion mit Appium (Python)

from appium import webdriver
import time

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator', # Oder echtes Gerät
    'appPackage': 'com.yourapp.package',
    'appActivity': 'com.yourapp.MainActivity',
    'automationName': 'UiAutomator2'
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    // Aktionen ausführen, die Netzwerk erfordern
    driver.find_element_by_accessibility_id("some_button").click()
    time.sleep(5) # Warten auf Datenladung

    // Flugmodus aktivieren
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Benachrichtigungen schließen
    print("Flugmodus AKTIV")
    time.sleep(10) # Warten auf Verbindungsverlust

    // Netzwerkaktion versuchen
    driver.find_element_by_accessibility_id("another_button").click()
    // Überprüfung der Anzeige des Fehler-/Kein-Netzwerk-Indikators

    // Flugmodus deaktivieren
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Benachrichtigungen schließen
    print("Flugmodus DEAKTIV")
    time.sleep(10) # Warten auf Wiederherstellung der Verbindung

    // Überprüfung der Wiederherstellung der Funktionalität und Datenintegrität
    // ... Assert-Anweisungen ...

except Exception as e:
    print(f"Fehler: {e}")

finally:
    driver.quit()

Das Reconneckt-Test ist entscheidend, um die Stabilität und Zuverlässigkeit der mobilen Anwendung unter instabilen Netzwerkbedingungen sicherzustellen.