Middle+
Meséljen az újracsatlakozás ellenőrzésének eseteiről a mobil alkalmazásban.
sobes.tech MI
Válasz az MI-től
Az újracsatlakozási tesztek azt vizsgálják, hogy a mobilalkalmazás hogyan viselkedik a szerver vagy más hálózati erőforrásokkal való kapcsolat elvesztése és helyreállítása során.
Teszt szcenáriók:
- Hálózati váltások:
- Wi-Fi -> Mobil internet (LTE/5G).
- Mobil internet (LTE/5G) -> Wi-Fi.
- Wi-Fi (egy pont) -> Wi-Fi (másik pont).
- Jelvesztés:
- Belépés olyan zónába, ahol nincs lefedettség (lift, metró).
- Repülő mód aktiválása/deaktiválása.
- A hálózati interfészek kényszerített kikapcsolása (Wi-Fi, Mobil adatok) a készülék beállításaiból.
- Szerver problémák:
- API ideiglenes elérhetetlensége.
- Szerver újraindítása.
- Hálózati késleltetések (proxy-k segítségével szimulálva).
Mit ellenőrzünk:
- UI/UX viselkedés:
- Betöltési vagy hibajelzők megjelenítése.
- A felhasználó aktuális állapotának megőrzése (pl. beviteli folyamat, lista pozíciója).
- A kapcsolat elvesztéséről vagy helyreállításáról szóló értesítések helyes megjelenítése.
- Hiba vagy "lefagyás" nélküli alkalmazás működés.
- Adatok integritása:
- A megszakítás idején küldött/kapott adatok helyesen kezelendők a helyreállítás után.
- A helyben tárolt adatok szinkronizálása a szerverrel.
- Újrapróbálkozások (Retry Logic):
- Az alkalmazásnak rendelkeznie kell újrapróbálkozási logikával, exponenciális késleltetéssel (backoff).
- A próbálkozások számának és a várakozási időnek korlátai.
- Ügyfélkezelés:
- A felhasználói munkamenet meg kell, hogy maradjon vagy helyesen kell helyreálljon, kényszerített kijelentkezés nélkül.
Eszközök és technikák:
- Hálózati proxy-k: Charles Proxy, Fiddler. Lehetővé teszik késleltetések, csomagveszteség szimulálását, kérések blokkolását.
- Hálózati eszközök: Fejlesztői eszközök böngészőben (webview-hez), speciális mobil eszközök a forgalom ellenőrzéséhez.
- "Repülő mód" mód: Egyszerű módszer a teljes kapcsolatvesztés szimulálására.
- Hálózati interfészek kikapcsolása: A készülék rendszerbeállításain keresztül.
- Hálózati emulátorok: Olyan eszközök, amelyek különböző hálózati körülményeket (sebesség, késleltetés, csomagveszteség) szimulálnak.
- Automatizálás: Appium, Espresso (Android), XCUITest (iOS) használata hálózati váltások vagy rendszerfunkciók (pl. Repülő mód bekapcsolása/kikapcsolása) automatizálására.
// Példa az automatikus újracsatlakozási teszt automatizálására Appium segítségével (Python)
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # vagy valódi eszköz
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Olyan műveletek végrehajtása, amelyek hálózatot igényelnek
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # Várakozás betöltésre
// Repülő mód aktiválása
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Értesítések bezárása
print("Repülő mód BE")
time.sleep(10) # Várakozás a kapcsolat elvesztésére
// Hálózati művelet próbálása
driver.find_element_by_accessibility_id("another_button").click()
// Hibajelző vagy hálózati hiány megjelenésének ellenőrzése
// Repülő mód kikapcsolása
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Értesítések bezárása
print("Repülő mód KI")
time.sleep(10) # Kapcsolat helyreállításának várása
// Funkcionalitás és adatok helyességének ellenőrzése
// ... assert állítások ...
except Exception as e:
print(f"Hiba: {e}")
finally:
driver.quit()
Az újracsatlakozási teszt kritikus a mobilalkalmazás stabilitásának és megbízhatóságának biztosításában instabil hálózati környezetben.