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()

რეკონნექტ ტესტირება კრიტიკულად მნიშვნელოვანია მობილური აპლიკაციის სტაბილურობისა და სანდოობის უზრუნველსაყოფად არასაიმედო ქსელურ გარემოებში।