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()
რეკონნექტ ტესტირება კრიტიკულად მნიშვნელოვანია მობილური აპლიკაციის სტაბილურობისა და სანდოობის უზრუნველსაყოფად არასაიმედო ქსელურ გარემოებში।