Middle+
Vertel over gevallen van controle van de reconnectie in de mobiele app.
sobes.tech AI
Antwoord van AI
Hersteltests controleren hoe een mobiele applicatie zich gedraagt bij het verliezen en opnieuw tot stand brengen van de verbinding met de server of andere netwerkbronnen.
Testscenario's:
- Netwerkoverschakeling:
- Wi-Fi -> Mobiel internet (LTE/5G).
- Mobiel internet (LTE/5G) -> Wi-Fi.
- Wi-Fi (een punt) -> Wi-Fi (ander punt).
- Signaalverlies:
- Betreden van een zone zonder dekking (lift, metro).
- Aan- en uitzetten van de "Vliegtuigmodus".
- Forceren van het uitschakelen van netwerkinterfaces (Wi-Fi, Mobiele Data) via de apparaatinstellingen.
- Serverproblemen:
- API tijdelijk niet beschikbaar.
- Herstart van de server.
- Netwerkvertragingen (gesimuleerd via proxies).
Wat we controleren:
- UI/UX gedrag:
- Laden of foutindicatoren weergeven.
- De huidige status van de gebruiker behouden (bijvoorbeeld onvolledige invoer, positie in de lijst).
- Correct weergeven van meldingen over verlies/herstel van de verbinding.
- Geen crashes of "haperingen" van de applicatie.
- Gegevensintegriteit:
- Gegevens die tijdens de disconnectie worden verzonden/ontvangen, correct afhandelen na herstel.
- Lokale opgeslagen gegevens synchroniseren met de server.
- Herhaalpogingen (Retry Logic):
- De applicatie moet logica voor herhaalpogingen met exponentiële vertraging (backoff) hebben.
- Limieten op het aantal herhaalpogingen en wachttijd.
- Sessiebeheer:
- De gebruikerssessie moet worden behouden of correct worden hersteld zonder geforceerde uitlog.
Tools en technieken:
- Netwerkproxies: Charles Proxy, Fiddler. Hiermee kunnen vertragingen, pakketverlies, blokkades van verzoeken worden gesimuleerd.
- Netwerkgereedschappen: Ontwikkelaarstools in browsers (voor webview), gespecialiseerde mobiele tools voor verkeerscontrole.
- "Vliegtuigmodus": Eenvoudige manier om volledig verlies van verbinding te simuleren.
- Uitschakelen van netwerkinterfaces: Via de systeeminstellingen van het apparaat.
- Netwemulators: Tools die het mogelijk maken om verschillende netwerkcondities te simuleren (snelheid, vertraging, pakketverlies).
- Automatisering: Gebruik van Appium, Espresso (Android), XCUITest (iOS) voor automatisering van scenario's met netwerkoverschakeling of het aanroepen van systeemfuncties (aan/uitzetten van vliegtuigmodus).
// Voorbeeld van automatisering van reconneckt-test met Appium (Python)
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # Of echt apparaat
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Voer netwerkgerelateerde acties uit
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # Wacht op gegevensladen
// Zet "Vliegtuigmodus" aan
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Sluit meldingen
print("Vliegtuigmodus AAN")
time.sleep(10) # Wacht op verlies van verbinding
// Probeer een netwerkactie uit
driver.find_element_by_accessibility_id("another_button").click()
// Controleer de weergave van de foutmelding/geen netwerk indicator
// Zet "Vliegtuigmodus" uit
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Sluit meldingen
print("Vliegtuigmodus UIT")
time.sleep(10) # Wacht op herstel van de verbinding
// Controleer herstel van functionaliteit en gegevens
// ... assert statements ...
except Exception as e:
print(f"Fout: {e}")
finally:
driver.quit()
Het reconneckt-test is cruciaal om de stabiliteit en betrouwbaarheid van de mobiele applicatie onder onstabiele netwerkcondities te waarborgen.