Sobes.tech
Middle+

Povězte o případech kontroly znovupřipojení v mobilní aplikaci.

sobes.tech AI

Odpověď od AI

Testy opětovného připojení kontrolují, jak se mobilní aplikace chová při ztrátě a obnovení spojení se serverem nebo jinými síťovými zdroji.

Scenario testů:

  • Přepínání sítě:
    • Wi-Fi -> Mobilní internet (LTE/5G).
    • Mobilní internet (LTE/5G) -> Wi-Fi.
    • Wi-Fi (jeden bod) -> Wi-Fi (jiný bod).
  • Ztráta signálu:
    • Vstup do oblasti bez pokrytí (výtah, metro).
    • Zapnutí/vypnutí režimu "Letadlo".
    • Vynucené vypnutí síťových rozhraní (Wi-Fi, Mobilní data) přes nastavení zařízení.
  • Problémy na serveru:
    • Dočasná nedostupnost API.
    • Restart serveru.
    • Zpoždění sítě (simulováno proxy servery).

Co kontrolujeme:

  • Chování UI/UX:
    • Zobrazení indikátorů načítání nebo chyb.
    • Uložení aktuálního stavu uživatele (například nedokončený vstup, pozice v seznamu).
    • Správné zobrazení oznámení o ztrátě/obnovení spojení.
    • Bez selhání nebo "zamrznutí" aplikace.
  • Integrita dat:
    • Data, která byla při přerušení odesílána/přijímána, musí být správně zpracována po obnovení.
    • Lokálně uložená data musí být synchronizována se serverem.
  • Opakované pokusy (Retry Logic):
    • Aplikace by měla mít logiku opakovaných pokusů o odeslání požadavků s exponenciálním zpožděním (backoff).
    • Limity na počet opakování a dobu čekání.
  • Správa relací:
    • Uživatelská relace by měla být zachována nebo správně obnovena bez nuceného odhlášení.

Nástroje a techniky:

  • Síťové proxy: Charles Proxy, Fiddler. Umožňují simulovat zpoždění, ztrátu paketů, blokování požadavků.
  • Síťové utility: Vývojářské nástroje v prohlížeči (pro webview), specializované mobilní utility pro kontrolu provozu.
  • Režim "Letadlo": Jednoduchý způsob, jak simulovat úplnou ztrátu spojení.
  • Vypnutí síťových rozhraní: Přes systémová nastavení zařízení.
  • Emulátory sítí: Nástroje umožňující simulovat různé síťové podmínky (rychlost, zpoždění, ztráta paketů).
  • Automatizace: Použití Appium, Espresso (Android), XCUITest (iOS) pro automatizaci scénářů s přepínáním sítí nebo voláním systémových funkcí (zapnutí/vypnutí režimu "Letadlo").
// Příklad automatizace testu opětovného připojení s použitím Appium (Python)

from appium import webdriver
import time

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator', # nebo skutečné zařízení
    'appPackage': 'com.yourapp.package',
    'appActivity': 'com.yourapp.MainActivity',
    'automationName': 'UiAutomator2'
}

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

try:
    // Provádíme akce vyžadující síťové připojení
    driver.find_element_by_accessibility_id("some_button").click()
    time.sleep(5) # Čekání na načtení

    // Zapnutí režimu "Letadlo"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Zavření oznámení
    print("Režim Letadlo ZAPNUT")
    time.sleep(10) # Čekání na ztrátu spojení

    // Pokus o provedení síťové akce
    driver.find_element_by_accessibility_id("another_button").click()
    // Kontrola zobrazení indikátoru chyby/nepřítomnosti sítě

    // Vypnutí režimu "Letadlo"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Zavření oznámení
    print("Režim Letadlo VYPNUT")
    time.sleep(10) # Čekání na obnovení spojení

    // Kontrola obnovení funkčnosti a správnosti dat
    // ... assert příkazy ...

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

finally:
    driver.quit()

Testování opětovného připojení je klíčové pro zajištění stability a spolehlivosti mobilní aplikace v nestabilním síťovém prostředí.