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