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í.