Sobes.tech
Middle+

Ispričajte slučajeve provjere ponovnog povezivanja u mobilnoj aplikaciji.

sobes.tech АИ

Одговор од АИ

Testovi ponovnog povezivanja proveravaju kako se mobilna aplikacija ponaša pri gubitku i ponovnom uspostavljanju veze sa serverom ili drugim mrežnim resursima.

Scenariji testiranja:

  • Prebacivanje mreže:
    • Wi-Fi -> Mobilni internet (LTE/5G).
    • Mobilni internet (LTE/5G) -> Wi-Fi.
    • Wi-Fi (jedna tačka) -> Wi-Fi (druga tačka).
  • Gubitak signala:
    • Ulazak u zonu bez pokrivenosti (lift, metro).
    • Uključivanje/isključivanje režima "Avion".
    • Prisilno isključivanje mrežnih interfejsa (Wi-Fi, Mobilni podaci) putem podešavanja uređaja.
  • Problemi na serveru:
    • Privremena nedostupnost API-ja.
    • Restartovanje servera.
    • Kašnjenja u mreži (simulirana proxy serverima).

Šta proveravamo:

  • Ponašanje UI/UX:
    • Prikaz indikatora učitavanja ili grešaka.
    • Čuvanje trenutnog stanja korisnika (npr. nedovršeni unos, pozicija u listi).
    • Ispravno prikazivanje obaveštenja o gubitku/obnovi veze.
    • Bez padova ili "zamrzavanja" aplikacije.
  • Integritet podataka:
    • Podaci koji su bili u procesu slanja/prijema tokom prekida moraju biti pravilno obrađeni nakon obnove.
    • Lokalno sačuvani podaci moraju biti sinhronizovani sa serverom.
  • Ponavljajući pokušaji (Retry Logic):
    • Aplikacija mora imati logiku ponovnih pokušaja slanja zahteva sa eksponencijalnim odlaganjem (backoff).
    • Limiti na broj ponovnih pokušaja i vreme čekanja.
  • Upravljanje sesijama:
    • Korisnička sesija mora biti sačuvana ili pravilno obnovljena bez prinudnog odjavljivanja.

Alati i tehnike:

  • Mrežni proxy-ji: Charles Proxy, Fiddler. Omogućavaju simulaciju kašnjenja, gubitka paketa, blokiranje zahteva.
  • Mrežni alati: Alati za razvoj u pregledaču (za webview), specijalizovani mobilni alati za kontrolu saobraćaja.
  • Režim "Avion": Jednostavan način za simulaciju potpune gubitka veze.
  • Isključivanje mrežnih interfejsa: Kroz sistemska podešavanja uređaja.
  • Emulatori mreže: Alati koji omogućavaju simulaciju različitih mrežnih uslova (brzina, kašnjenje, gubitak paketa).
  • Automatizacija: Korišćenje Appium, Espresso (Android), XCUITest (iOS) za automatizaciju scenarija sa prebacivanjem mreža ili pozivanjem sistemskih funkcija (uključivanje/isključivanje režima "Avion").
// Primer automatizacije testa ponovnog povezivanja korišćenjem Appium (Python)

from appium import webdriver
import time

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator', # Ili pravi uređaj
    'appPackage': 'com.yourapp.package',
    'appActivity': 'com.yourapp.MainActivity',
    'automationName': 'UiAutomator2'
}

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

try:
    // Izvršavanje radnji koje zahtevaju mrežu
    driver.find_element_by_accessibility_id("some_button").click()
    time.sleep(5) # Čekanje na učitavanje

    // Uključivanje režima "Avion"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Zatvaranje obaveštenja
    print("Režim "Avion" UKLJUČEN")
    time.sleep(10) # Čekanje na gubitak veze

    // Pokušaj izvršenja mrežne radnje
    driver.find_element_by_accessibility_id("another_button").click()
    // Provera prikaza indikatora greške/nedostatka mreže

    // Isključivanje režima "Avion"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Zatvaranje obaveštenja
    print("Režim "Avion" ISKLJUČEN")
    time.sleep(10) # Čekanje na obnavljanje veze

    // Provera obnavljanja funkcionalnosti i tačnosti podataka
    // ... assert izjave ...

except Exception as e:
    print(f"Greška: {e}")

finally:
    driver.quit()

Testiranje ponovnog povezivanja je ključno za obezbeđivanje stabilnosti i pouzdanosti mobilne aplikacije u uslovima nestabilne mrežne okoline.