Middle+
Mobil tətbiqdə yenidən qoşulma yoxlaması halları haqqında danışın.
sobes.tech Süni İntellekt
AI-dan cavab
Yenidən qoşulma testləri, mobil tətbiqin server və ya digər şəbəkə resursları ilə əlaqənin itirilməsi və bərpa olunması zamanı necə davrandığını yoxlayır.
Test ssenariləri:
- Şəbəkənin keçidləri:
- Wi-Fi -> Mobil internet (LTE/5G).
- Mobil internet (LTE/5G) -> Wi-Fi.
- Wi-Fi (bir nöqtə) -> Wi-Fi (başqa nöqtə).
- Siqnal itkisi:
- Əhatə zonasına daxil olmamaq (lift, metro).
- "Hava ilə" rejimini aktivləşdirmək/deaktiv etmək.
- Cihazın şəbəkə interfeyslerini məcburi bağlamaq (Wi-Fi, Mobil Data) cihazın parametrlərindən.
- Serverdə problemlər:
- API müvəqqəti əlçatmaz.
- Serverin yenidən başlaması.
- Şəbəkə gecikmələri (proksi serverlər vasitəsilə simulyasiya).
Nə yoxlayırıq:
- İstifadəçi interfeysi/İstifadəçi təcrübəsi davranışı:
- Yükləmə və ya səhv göstəricilərinin göstərilməsi.
- İstifadəçinin cari vəziyyətinin saxlanması (məsələn, tamamlanmamış giriş, siyahıdakı mövqe).
- Əlaqənin itirilməsi/bərpası barədə bildirişlərin düzgün göstərilməsi.
- Tətbiqin uğursuzluğu və ya "dondurulması" olmaması.
- Məlumatların bütövlüyü:
- Kəsilmə zamanı göndərilməkdə və ya alınmaqda olan məlumatlar düzgün işlənməlidir.
- Lokal olaraq saxlanılan məlumatlar server ilə sinxronlaşdırılmalıdır.
- Yenidən cəhdlər (Retry Logic):
- Tətbiq, sorğuların göndərilməsində təkrarlama loqikasına malik olmalıdır və eksponensial gecikmə ilə (backoff) cəhd etməlidir.
- Yenidən cəhdlərin sayı və gözləmə vaxtı üçün limitlər.
- Sessiyaların idarə olunması:
- İstifadəçi sessiyası saxlanmalı və ya düzgün şəkildə bərpa olunmalı, zorunlu çıxış olmadan.
Alətlər və texnikalar:
- Şəbəkə proxy-ləri: Charles Proxy, Fiddler. Gecikmələri, paket itkilərini və sorğuları bloklamağı simulyasiya edir.
- Şəbəkə utilitləri: Brauzer inkişaf alətləri (webview üçün), mobil trafik nəzarət üçün xüsusi utilitlər.
- "Hava ilə" rejimi: Tam əlaqə itkisini simulyasiya etmək üçün sadə üsul.
- Şəbəkə interfeyslerini deaktiv etmək: Cihazın sistem parametrləri vasitəsilə.
- Şəbəkə emulyatorları: Müxtəlif şəbəkə şəraitlərini (sürət, gecikmə, paket itkisi) simulyasiya edən alətlər.
- Avtomatlaşdırma: Appium, Espresso (Android), XCUITest (iOS) istifadə edərək şəbəkə keçidləri və ya sistem funksiyalarını çağırmaq (Hava ilə rejimini açıb bağlamaq) üçün.
// Appium istifadə edilərək yenidən qoşulma testinin avtomatlaşdırılması nümunəsi (Python)
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # və ya real cihaz
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Şəbəkə tələb edən əməliyyatları yerinə yetiririk
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # Yüklənmə üçün gözləmə
// "Hava ilə" rejimini aktivləşdiririk
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Bildirişləri bağla
print("Hava ilə rejimi aktiv edildi")
time.sleep(10) # Əlaqənin itirilməsini gözləyirik
// Şəbəkə əməliyyatını yerinə yetirməyə çalışırıq
driver.find_element_by_accessibility_id("another_button").click()
// Səhv və ya şəbəkə yoxluğu göstəricisinin göstərilməsini yoxlayırıq
// "Hava ilə" rejimini deaktivləşdiririk
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Bildirişləri bağla
print("Hava ilə rejimi deaktiv edildi")
time.sleep(10) # Bərpa olunmasını gözləyirik
// Funksionallığın və məlumatların düzgünlüyünü yoxlayırıq
// ... assert bəyanatları ...
except Exception as e:
print(f"Xəta: {e}")
finally:
driver.quit()
Yenidən qoşulma testləri, mobil tətbiqin qeyri-sabit şəbəkə şəraitində stabilliyini və etibarlılığını təmin etmək üçün çox vacibdir.