Sobes.tech
Middle+

Αναφέρετε περιπτώσεις ελέγχου επανασύνδεσης στην κινητή εφαρμογή.

sobes.tech AI

Απάντηση από AI

Οι δοκιμές επανασύνδεσης ελέγχουν πώς συμπεριφέρεται η κινητή εφαρμογή κατά την απώλεια και την επαναφορά της σύνδεσης με τον διακομιστή ή άλλους δικτυακούς πόρους.

Σενάρια δοκιμών:

  • Μεταγωγή δικτύου:
    • Wi-Fi -> Κινητό διαδίκτυο (LTE/5G).
    • Κινητό διαδίκτυο (LTE/5G) -> Wi-Fi.
    • Wi-Fi (ένα σημείο) -> Wi-Fi (άλλο σημείο).
  • Απώλεια σήματος:
    • Είσοδος σε περιοχή χωρίς κάλυψη (ανελκυστήρας, μετρό).
    • Ενεργοποίηση/απενεργοποίηση λειτουργίας "Πτήση".
    • Εξαναγκαστική απενεργοποίηση δικτυακών διεπαφών (Wi-Fi, Κινητά Δεδομένα) μέσω ρυθμίσεων συσκευής.
  • Προβλήματα στον διακομιστή:
    • Προσωρινή μη διαθεσιμότητα API.
    • Επανεκκίνηση διακομιστή.
    • Καθυστερήσεις δικτύου (εξομοίωση με διαμεσολαβητές).

Τι ελέγχουμε:

  • Συμπεριφορά UI/UX:
    • Εμφάνιση δεικτών φόρτωσης ή σφαλμάτων.
    • Διατήρηση τρέχουσας κατάστασης χρήστη (π.χ., μη ολοκληρωμένη εισαγωγή, θέση στη λίστα).
    • Ορθή εμφάνιση ειδοποιήσεων για απώλεια/επαναφορά σύνδεσης.
    • Χωρίς σφάλματα ή "πάγωμα" της εφαρμογής.
  • Ακεραιότητα δεδομένων:
    • Τα δεδομένα που αποστέλλονται/λαμβάνονται κατά τη διάρκεια διακοπής πρέπει να διαχειρίζονται σωστά μετά την επαναφορά.
    • Τα τοπικά αποθηκευμένα δεδομένα πρέπει να συγχρονίζονται με τον διακομιστή.
  • Επαναληπτικές προσπάθειες (Retry Logic):
    • Η εφαρμογή πρέπει να διαθέτει λογική επαναπροσπάθειας αποστολής αιτημάτων με εκθετική καθυστέρηση (backoff).
    • Όρια στον αριθμό των επαναπροσπαθειών και τον χρόνο αναμονής.
  • Διαχείριση συνεδριών:
    • Η συνεδρία χρήστη πρέπει να διατηρείται ή να επαναφέρεται σωστά χωρίς αναγκασική έξοδο.

Εργαλεία και τεχνικές:

  • Προξυ-διακομιστές δικτύου: Charles Proxy, Fiddler. Επιτρέπουν την προσομοίωση καθυστερήσεων, απώλειας πακέτων, αποκλεισμού αιτημάτων.
  • Εργαλεία δικτύου: Εργαλεία ανάπτυξης σε browser (για webview), εξειδικευμένα εργαλεία κινητής για έλεγχο κυκλοφορίας.
  • Λειτουργία "Πτήση": Απλός τρόπος προσομοίωσης πλήρους απώλειας σύνδεσης.
  • Απενεργοποίηση δικτυακών διεπαφών: Μέσω ρυθμίσεων συστήματος συσκευής.
  • Εξομοιωτές δικτύου: Εργαλεία που επιτρέπουν την προσομοίωση διαφόρων συνθηκών δικτύου (ταχύτητα, καθυστέρηση, απώλεια πακέτων).
  • Αυτοματισμός: Χρήση 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("Λειτουργία Πτήση ΕΝΕΡΓΟΠΟΙΗΘΗΚΕ")
    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("Λειτουργία Πτήση ΑΝΕΝΕΡΓΟΠΟΙΗΘΗΚΕ")
    time.sleep(10) # Αναμονή για επαναφορά σύνδεσης

    // Ελέγχουμε την επαναφορά λειτουργικότητας και την ορθότητα δεδομένων
    // ... δηλώσεις assert ...

except Exception as e:
    print(f"Σφάλμα: {e}")

finally:
    driver.quit()

Η δοκιμή επανασύνδεσης είναι κρίσιμη για την εξασφάλιση σταθερότητας και αξιοπιστίας της κινητής εφαρμογής υπό ασταθή δικτυακό περιβάλλον.