Sobes.tech
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()

Վերակապման թեստավորումը կարևոր է՝ ապահովելու մոբայլ հավելվածի կայունությունն ու հուսալիությունը անընդհատ ցանցային պայմաններում։