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