Middle+
Povedajte o prípadoch kontroly opätovného pripojenia v mobilnej aplikácii.
sobes.tech AI
Odpoveď od AI
Testy opätovného pripojenia kontrolujú, ako sa správa mobilná aplikácia pri strate a obnove spojenia so serverom alebo inými sieťovými zdrojmi.
Scenáre testovania:
- Prechod siete:
- Wi-Fi -> Mobilný internet (LTE/5G).
- Mobilný internet (LTE/5G) -> Wi-Fi.
- Wi-Fi (jeden bod) -> Wi-Fi (iný bod).
- Strata signálu:
- Vstup do oblasti bez pokrytia (výťah, metro).
- Zapnutie/vypnutie režimu "Letadlo".
- Nútené vypnutie sieťových rozhraní (Wi-Fi, Mobilné dáta) cez nastavenia zariadenia.
- Problémy na serveri:
- Dočasná nedostupnosť API.
- Reštartovanie servera.
- Oneskorenia siete (simulované proxy servermi).
Čo kontrolujeme:
- Správanie UI/UX:
- Zobrazenie indikátorov načítania alebo chýb.
- Uloženie aktuálneho stavu používateľa (napr. nedokončený vstup, pozícia v zozname).
- Správne zobrazenie oznámení o strate/obnovení spojenia.
- Bez zlyhaní alebo "zamrznutí" aplikácie.
- Integrita dát:
- Dáta, ktoré boli v procese odosielania/prijímania počas prerušenia, musia byť správne spracované po obnove.
- Lokálne uložené dáta musia byť synchronizované so serverom.
- Opakované pokusy (Retry Logic):
- Aplikácia musí mať logiku opakovaných pokusov odoslania požiadaviek s exponenciálnym oneskorením (backoff).
- Limity na počet opakovaných pokusov a čas čakania.
- Správa relácií:
- Používateľská relácia musí byť zachovaná alebo správne obnovená bez núteného odhlásenia.
Prostriedky a techniky:
- Sieťové proxy: Charles Proxy, Fiddler. Umožňujú simulovať oneskorenia, stratu paketov, blokovanie požiadaviek.
- Sieťové utility: Nástroje pre vývojárov v prehliadači (pre webview), špecializované mobilné utility na kontrolu prevádzky.
- Režim "Letadlo": Jednoduchý spôsob, ako simulovať úplnú stratu spojenia.
- Vypnutie sieťových rozhraní: Cez systémové nastavenia zariadenia.
- Emulátory siete: Nástroje, ktoré umožňujú simulovať rôzne sieťové podmienky (rýchlosť, oneskorenie, strata paketov).
- Automatizácia: Použitie Appium, Espresso (Android), XCUITest (iOS) na automatizáciu scénarov s prepínaním sietí alebo volaním systémových funkcií (zapnutie/vypnutie režimu "Letadlo").
// Príklad automatizácie testu opätovného pripojenia s použitím Appium (Python)
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # Alebo reálne zariadenie
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Vykonávame akcie, ktoré vyžadujú sieť
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # Čakanie na načítanie
// Zapnutie režimu "Letadlo"
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Zatvorenie oznámení
print("Režim "Letadlo" ZAPNUTÝ")
time.sleep(10) # Čakanie na stratu spojenia
// Pokus o vykonanie sieťovej akcie
driver.find_element_by_accessibility_id("another_button").click()
// Kontrola zobrazenia indikátora chyby/neprítomnosti siete
// Vypnutie režimu "Letadlo"
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Zatvorenie oznámení
print("Režim "Letadlo" VYPNUTÝ")
time.sleep(10) # Čakanie na obnovenie spojenia
// Kontrola obnovenia funkčnosti a správnosti dát
// ... assert príkazy ...
except Exception as e:
print(f"Chyba: {e}")
finally:
driver.quit()
Testovanie opätovného pripojenia je kľúčové pre zabezpečenie stability a spoľahlivosti mobilnej aplikácie v nestabilnom sieťovom prostredí.