Middle+
Պատմեք մոբայլ հավելվածում վերամիացման ստուգման դեպքերի մասին։
sobes.tech AI
Պատասխան AI-ից
Վերակապման թեստերը ստուգում են, թե ինչպես է մոբայլ հավելվածը գործում կապի կորուստի և հետագա վերականգնման դեպքում սերվերի կամ այլ ցանցային ռեսուրսների հետ:
Թեստավորման սցենարներ:
- Ցանցի փոփոխություն:
- Wi-Fi -> Մոբայլ ինտերնետ (LTE/5G):
- Մոբայլ ինտերնետ (LTE/5G) -> Wi-Fi:
- Wi-Fi (միակ կետ) -> Wi-Fi (այլ կետ):
- Նշանների կորուստ:
- Մուտք առանց ծածկույթի գոտի (լիфт, մետրո):
- "Ավիամոդ" ռեժիմի միացում/անջատում:
- Ցանցային ինտերֆեյսների պարտադիր անջատում (Wi-Fi, Cellular Data) սարքի կարգավորումներով:
- Սերվերի խնդիրներ:
- API-ի ժամանակավոր անհասանելիություն:
- Սերվերի վերագործարկում:
- Ցանցային ուշացումներ (պրոքսի սերվերների միջոցով սիմուլյացիա):
Ինչ ենք ստուգում:
- UI/UX վարքագիծ:
- Բեռնման կամ սխալի ցուցանիշների ցուցադրում:
- Տվյալների պահպանում ընթացիկ վիճակը (օրինակ, ավարտված չլինած մուտքագրում, ցանկի դիրք):
- Հաղորդագրությունների ճիշտ ցուցադրում կապի կորուստի/վերականգնման մասին:
- Հավելվածի խափանումներ կամ "կայունություն" չլինել:
- Տվյալների ամբողջականություն:
- Կապի ընդհատման ժամանակ ուղարկվող/ստացվող տվյալները պետք է ճիշտ մշակվեն վերականգնման հետո:
- տեղական պահվող տվյալները պետք է սինխրոնիզացվեն սերվերի հետ:
- Կրկնվող փորձեր (Retry Logic):
- Հավելվածը պետք է ունենա կրկնվող փորձերի տրամաբանություն՝ հարցումների ուղարկման հետագծով՝ արտահայտական դանդաղումով (backoff):
- Կրկնվող փորձերի քանակի և սպասման ժամանակի սահմանափակումներ:
- Սեսիաների մշակումը:
- Օգտագործողի սեսիան պետք է պահպանվի կամ ճիշտ վերականգնվի առանց պարտադիր լոգաութի:
Գործիքներ և տեխնիկաներ:
- Ցանցային պրոքսիներ: Charles Proxy, Fiddler: թույլ են տալիս սիմուլյացիա կատարել ուշացումների, փաթեթների կորստի, հարցումների խոչընդոտման:
- Ցանցային utility-ներ: Բրաուզերի զարգացման գործիքներ (վեբվյուի համար), մասնագիտացված մոբայլ տրակինգի utility-ներ:
- "Ավիամոդ" ռեժիմ: Պարզ միջոց՝ սիմուլյացիա կատարել կապի լիակատար կորուստ:
- Ցանցային ինտերֆեյսների անջատում: Սարքի կարգավորումներով:
- Ցանցային էմուլատորներ: Գործիքներ՝ տարբեր ցանցային պայմաններ սիմուլյացիա անելու համար (արագություն, ուշացում, փաթեթների կորուստ):
- Ավտոմատացում: Appium, Espresso (Android), XCUITest (iOS) օգտագործելով՝ ավտոմատացնելու սցենարները՝ ցանցի փոփոխության կամ համակարգային ֆունկցիաներ կանչելու համար (Ավիամոդի միացում/անջատում):
// Օրինակ՝ Appium (Python) օգտագործելով վերակապման ավտոմատացման թեստ
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # կամ իրական սարք
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Կատարում ենք ցանցային գործողություններ
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # սպասում տվյալների բեռնումին
// Ակտիվացնում ենք "Ավիամոդ" ռեժիմը
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # փակել ծանուցումները
print("Airplane mode ON")
time.sleep(10) # սպասում կապի կորուստին
// Փորձում ենք կատարել ցանցային գործողություն
driver.find_element_by_accessibility_id("another_button").click()
// ստուգում ենք սխալի կամ ցանցի բացակայության ցուցանիշը
// Դադարեցնում ենք "Ավիամոդ" ռեժիմը
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # փակել ծանուցումները
print("Airplane mode OFF")
time.sleep(10) # սպասում կապի վերականգնմանը
// Ստուգում ենք գործառնականության վերականգնումը և տվյալների ճշգրտությունը
// ... assert հայտարարություններ ...
except Exception as e:
print(f"Error: {e}")
finally:
driver.quit()
Վերակապման թեստավորումը կարևոր է՝ ապահովելու մոբայլ հավելվածի կայունությունն ու հուսալիությունը անընդհատ ցանցային պայմաններում։