Örnek sorular
Mq Appium Driver ArchitectureZorluk 1
Appium 2'de sunucu, istemci kütüphaneleriyle iletişim kurmak için öncelikli olarak hangi protokolü kullanır?
- aHer mobil işletim sistemi için ayrı derlenmiş, hiçbir web standardıyla ilişkisi olmayan ikili bir protokol
- bHerhangi bir tarayıcı otomasyon standardından bağımsız icat edilmiş, sadece Appium'a özgü bir protokol
- cİstemcilerin driver capability'leri ve session durumunu sorguladığı bir GraphQL API
- dTarayıcı otomasyon araçlarının da kullandığı, HTTP/JSON tabanlı aynı standart olan W3C WebDriver protokolü✓
Açıklama:Doğru cevap d: Appium sunucusu istemcilerle W3C WebDriver protokolü üzerinden konuşur; bu, tarayıcı otomasyonunda da kullanılan aynı HTTP/JSON tabanlı standarttır. a yanlıştır, platforma özgü derlenmiş bir ikili protokol yoktur. b yanlıştır, protokol Appium'a özgü icat edilmemiştir, W3C standardını izler. c yanlıştır, Appium çekirdek protokolünde GraphQL kullanmaz.
Mq Appium Driver ArchitectureZorluk 1
Tipik bir Appium kurulumunda bir komutun geçtiği katman sırası aşağıdakilerden hangisidir?
- aİstemci kütüphanesi -> Appium sunucusu -> platforma özgü driver -> cihaz/emülatör✓
- bİstemci kütüphanesi -> cihaz/emülatör -> Appium sunucusu -> platforma özgü driver
- cAppium sunucusu -> istemci kütüphanesi -> cihaz/emülatör -> platforma özgü driver
- dPlatforma özgü driver -> istemci kütüphanesi -> Appium sunucusu -> cihaz/emülatör
Açıklama:Doğru cevap a: istemci kütüphanesi komutu Appium sunucusuna gönderir, sunucu bunu platforma özgü driver'a (UiAutomator2, XCUITest vb.) iletir, driver da cihaz veya emülatör üzerinde işlemi gerçekleştirir. b istemci ve cihaz sırasını yanlış tersine çevirir. c sunucuyu istemciden önceye koyar, bu tersine bir sıradır. d istemciyi tamamen atlayıp driver'dan başlar.
Mq Appium Driver ArchitectureZorluk 1
Appium sunucu sürecinin kendisinin temel sorumluluğu nedir?
- aWebDriver HTTP komutlarını almak ve komutları session'ın driver'ına yönlendirmek✓
- bHer session öncesinde test edilen uygulamayı kurulabilir bir pakete derlemek
- cTest edenlerin masaüstü tarayıcı penceresinde önizleyebilmesi için mobil uygulamanın arayüzünü render etmek
- dGeçmiş test koşumu sonuçlarını yerleşik bir ilişkisel veritabanında saklamak
Açıklama:Doğru cevap a: Appium sunucusunun temel işi W3C WebDriver HTTP komutlarını almak ve her birini o session'a bağlı driver örneğine yönlendirmektir. b yanlıştır, Appium uygulama derlemez. c yanlıştır, sunucu arayüz önizlemesi render etmez. d yanlıştır, Appium'un yerleşik bir sonuç veritabanı yoktur.
Mq Appium Driver ArchitectureZorluk 1
Başarılı bir newSession (POST /session) isteği ne oluşturur?
- aAppium sunucusu yeniden başlatıldığında da hayatta kalan kalıcı bir cihaz kaydı
- bSonraki komutların referans vermesi gereken bir session ID ile tanımlanan bir session✓
- cİstemci kütüphanesi ile mobil uygulamanın kaynak kodu arasında doğrudan bir soket bağlantısı
- dBir daha hiç yeniden sorgulanması gerekmeyen, önbelleğe alınmış bir uygulama arayüz hiyerarşisi kopyası
Açıklama:Doğru cevap b: başarılı bir newSession çağrısı bir session ID döner ve sonraki her komut, sunucunun komutu doğru driver örneğine yönlendirmesi için bu ID'yi içermelidir. a yanlıştır, session sunucu yeniden başlatıldığında hayatta kalmaz. c yanlıştır, istemci ile kaynak kod arasında doğrudan bir soket yoktur. d yanlıştır, arayüz hiyerarşisi session oluşturulurken kalıcı olarak önbelleğe alınmaz.
Mq Appium Driver ArchitectureZorluk 2
Bir istemci kütüphanesi normal şartlarda bir Appium session'ını nasıl temiz şekilde sonlandırır?
- aSunucunun bunu quit sinyali olarak yorumladığı, laptop'ın ağ bağlantısını kapatarak
- bBoş bir capabilities objesiyle ikinci bir newSession isteği göndererek
- cMobil cihazın yeniden başlamasını bekleyerek, bu da sunucuyu session'ı düşürmeye zorlar
- dSession endpoint'ine bir DELETE isteği göndererek; çoğu istemcide
quit() olarak sunulur✓
Açıklama:Doğru cevap d: bir session'ı temiz şekilde sonlandırmak, session endpoint'ine bir DELETE isteği göndermek demektir; çoğu istemci kütüphanesi bunu quit() çağrısı olarak sarmalar. a yanlıştır, ağ bağlantısını kapatmak temiz bir quit mekanizması değildir. b yanlıştır, ikinci bir newSession çağrısı mevcut session'ı kapatmak yerine yenisini başlatır. c yanlıştır, cihaz yeniden başlatması normal bir sonlandırma yolu değildir.
Mq Appium Driver ArchitectureZorluk 1
Appium 2'de, Android testleri çalıştırmadan önce UiAutomator2 driver'ını sunucuya nasıl kazandırırsın?
- aHer Appium 2 sürümünde sunucuyla birlikte zaten gelir, ayrı bir adım gerekmez
- bÖrneğin
appium driver install uiautomator2 komutuyla ayrı bir eklenti olarak açıkça kurarsın✓ - cAndroid SDK'nın platform-tools klasörüne elle bir
.driver dosyası kopyalarsın - dSunucuyu başlatmadan önce
APPIUM_DEFAULT_DRIVER=uiautomator2 adlı bir ortam değişkeni ayarlarsın
Açıklama:Doğru cevap b: Appium 2 driver'ları ayrı kurulabilir eklentiler olarak ele alır, bu yüzden UiAutomator2'nin örneğin appium driver install uiautomator2 ile açıkça eklenmesi gerekir. a yanlıştır, Appium 2 varsayılan olarak driver'ları paketlemez. c yanlıştır, SDK klasörüne elle .driver dosyası kopyalama adımı yoktur. d yanlıştır, driver kullanılabilirliğini yöneten böyle bir ortam değişkeni yoktur.