Mobil Tətbiqlərin Sınağı: Appium 2.0, iOS/Android və Mobil QA Ən Yaxşı Təcrübələr
Smartfonların dominant olduğu dövrdə mobil tətbiqlərin keyfiyyəti birbaşa biznesin uğurunu müəyyənləşdirir. Mobil mühitdəki ekran ölçülərinin müxtəlifliyi, batareya sərfi, şəbəkə kəsilmələri və əməliyyat sistemi versiyaları xüsusi test yanaşması tələb edir.
1. Mobil QA-in Unikal Xüsusiyyətləri və Test Strategiyası
Mobil tətbiqlərin testi klassik veb testindən köklü şəkildə fərqlənir. İstifadəçilər mobil tətbiqlərdən anlıq reaksiya, qüsursuz animasiyalar və batareyanı qoruyan səmərəlilik gözləyirlər.
- Şəbəkə Davranışları (Network Switching): 5G, 4G, zəif 3G, təyyarə rejimi və Wi-Fi → Mobil şəbəkə keçidləri zamanı məlumat itkisinin qarşısının alınması.
- Sistem Kəsilmələri (System Interruptions): Zəng gəlməsi, SMS bildirişi, zəif batareya xəbərdarlığı, zəngli saat və ekran kilidi zamanı tətbiqin vəziyyətinin (state) qorunması.
- Toxunma Jestləri (Touch Gestures): Tək və çoxbarmaqlı sürüşdürmə (swipe), yaxınlaşdırma (pinch-to-zoom), uzun basma (long press) və ikiqat toxunma (double tap).
- Cihaz və Ekran Fragmentasiyası: Yüzlərlə fərqli ekran ölçüsü, kəsik (notch) dizaynları və Android OEM interfeysləri (Samsung OneUI, Xiaomi MIUI, Pure Android).
2. Appium 2.0 Arxitekturası və Modulyar Drayverlər
Appium 2.0 monolit strukturu aradan qaldıraraq müstəqil drayver və plagin ekosistemi yaratdı. Artıq yalnız ehtiyacınız olan platformanı quraşdırırsınız:
# 1. Appium 2.0 serverinin quraşdırılması npm install -g appium # 2. Android və iOS drayverlərinin aktivləşdirilməsi appium driver install uiautomator2 appium driver install xcuitest # 3. Şəkil tanıma (Image recognition) plagininin əlavəsi appium plugin install images appium --use-plugins=images
3. Python İlə Appium Test Skripti və Page Object Model
Mobil tətbiqin avtomatik login testi üçün hazır Python Appium nümunəsi:
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 1. Cihaz konfiqurasiyası (Capabilities)
options = UiAutomator2Options()
options.platform_name = "Android"
options.automation_name = "UiAutomator2"
options.device_name = "Pixel_7_API_34"
options.app = "/path/to/qaacademy_app.apk"
options.app_package = "az.qaacademy.app"
options.app_activity = ".MainActivity"
driver = webdriver.Remote("http://127.0.0.1:4723", options=options)
wait = WebDriverWait(driver, 15)
try:
# 2. Elementləri tap və qarşılıqlı əlaqə qur
email_field = wait.until(EC.presence_of_element_located((AppiumBy.ACCESSIBILITY_ID, "input_email")))
email_field.send_keys("student@qaacademy.az")
password_field = driver.find_element(AppiumBy.ACCESSIBILITY_ID, "input_password")
password_field.send_keys("SecurePass2026!")
login_btn = driver.find_element(AppiumBy.XPATH, '//android.widget.Button[@text="DAXİL OL"]')
login_btn.click()
# 3. Uğurlu giriş yoxlaması
welcome_banner = wait.until(EC.visibility_of_element_located((AppiumBy.ID, "az.qaacademy.app:id/welcome_text")))
assert "Xoş gəldiniz" in welcome_banner.text
print("Mobil Login Testi Uğurla Tamamlandı!")
finally:
driver.quit()
4. Real Cihazlar vs Emulyatorlar və Bulud Test Fermaları
| Xüsusiyyət | Emulyator / Simulyator | Fiziki Real Cihaz | Bulud Test Ferması (BrowserStack / SauceLabs) |
|---|---|---|---|
| Xərc və Əlçatanlıq | Tamamilə pulsuz və dərhal hazır | Cihazların alınması tələb olunur | Aylıq abunəlik əsasında |
| Hardware / Batareya Testi | Dəstəklənmir | 100% Real dəqiqlik | 100% Real fiziki cihazlar |
| CI/CD Paralelizasiyası | Yüksək RAM və CPU tələb edir | USB Hub və idarəetmə çətinliyi | 50+ cihazda eyni anda paralel icra |
Tez-tez Verilən Suallar (FAQ)
Appium ilə həm Native, həm də Hybrid tətbiqləri test etmək olarmı?
Bəli, Appium Native, Hybrid və Mobil Veb tətbiqlərini WebView kontekstləri vasitəsilə tam dəstəkləyir.
Real cihazlarla emulyatorlar arasında fərq nədir?
Emulyatorlar sürətli ilkin testlər üçün idealdır, lakin batareya sərfi, sensorlar və real şəbəkə gecikmələri üçün mütləq real fiziki cihazlarda test aparılmalıdır.