Mobil Uygulama Testi için Appium Mimarisi

Yayınlanan: 2020-06-26

İçindekiler

Appium'a Genel Bakış

Appium, iOS ve Android mobil uygulamaları için otomasyon sağlayan ücretsiz bir mobil uygulama test aracı/çerçevesidir. Appium, Java, Python, Ruby, JavaScript vb. ile yazılmış test kodunu kabul eden bir istemci-sunucu mimarisidir.

Appium, özünde, JSON kablo protokolünü kullanarak iOS ve Android oturumları oluşturan Node.js programlama dilinde yazılmış bir web sunucusudur.

Appium Sunucusu Aşağıdaki Eylemleri Gerçekleştirir

  • İstemciden HTTP üzerinden JSON nesnesi biçiminde bir bağlantı alır
  • Bir oturum başlatın ve ardından oturum kimliğini döndürür
  • Verilen komutları dinler
  • Bu komutları bir mobil cihazda yürütür
  • HTTP yanıtıyla yanıt verir

Kaynak

Appium Temel Kavramları

Appium mimarisine derinlemesine dalmadan önce, Appium mimarisiyle ilgili temel kavramları anlayalım .

Appium İstemcisi

Appium istemcisi, kendinizi rahat hissettiğiniz herhangi bir dilde (PHP, Java , Phyton, vb.) yazılmış otomatik bir komut dosyası kodudur. Appium istemcisi, test senaryolarını çalıştırmak için mantık/kod ile birlikte mobil cihazın ve uygulamanın yapılandırma ayrıntılarını tutar.

Appium Sunucusu

Appium sunucusu, Appium istemcisinden JSON formatında bağlantı ve komut isteklerini alan ve bu komutları bir mobil cihazda yürüten, Node.js programlama dilinde yazılmış bir HTTP sunucusudur. Otomasyon kodu çağrılmadan önce Appium Sunucusu başlatılır.

Sunucu, iOS ve Android platformları ile etkileşime girer ve mobil uygulamaların uç cihazlarıyla etkileşim kurmak için bir oturum oluşturur.

Okuyun: Yeni Başlayanlar İçin En Popüler 20 Android Projesi Fikirleri ve Konusu

Cihazı Bitir

Uç cihaz çoğunlukla gerçek zamanlı bir mobil cihaz veya bir öykünücüdür. Otomatik komut dosyaları, istemcinin komutları tarafından Appium sunucusu tarafından uç cihazda yürütülür.

JSON Tel Protokolü

Appium mimarisinde, JSON tel protokolü, Appium istemcisi ile Appium sunucusu arasında iletişim kurmak için kullanılan bir aktarım mekanizmasıdır. Bu protokol, bir oturum üzerinden farklı mobil cihazların davranışını kontrol eder. RESTful API aracılığıyla sunulan bir dizi önceden tanımlanmış uç noktadır. Örneğin, bir istemci bir sunucuya veri göndermek isterse, istemci onu bir JSON nesnesine dönüştürür ve sunucuya iter. Sunucu daha sonra alınan JSON nesnesini ayrıştırır ve onu kullanım için verilere geri dönüştürür.

Appium Mimarisi

Şimdi Appium mimarisini anlayalım .

Yukarıda bahsedildiği gibi Appium sunucusu, istemci kitaplıklarından gelen HTTP isteklerini JSON formatında okuyan ve bu istekleri uygun platforma gönderen bir HTTP sunucusudur. Appium sunucusu bu istekleri tanır ve ilgili uç cihazla bir otomasyon oturumu oluşturur. Oturum oluşturulduktan sonra, Appium sunucusu, uç cihazda test senaryolarının yürütülmesini başlatır.

Appium sunucusu, üzerinde çalıştığı platforma bağlı olarak, istekleri iOS ve Android için farklı şekilde işler. Aşağıdaki bölümler, Appium'un bu platformlarda komutları nasıl farklı şekilde çalıştırdığını açıklayacaktır.

Appium Bir iOS Aygıtında Çalışmak

Bir iOS aygıtında Appium, uygulamanın kullanıcı arabirimi öğelerine bağlanmak için UIAutomation API'sini (Apple Company tarafından sağlanan JavaScript kitaplığı) kullanır.

Yukarıdaki Appium iOS mimarisi şekli, iOS otomasyonu için Appium mimarisini açıklar. Adım adım iOS Appium mimarisinin kodunu çözelim:

  • Appium istemcisi, JSON kablo protokolünü kullanarak Appium sunucusuyla iletişim kurar ve komutu sunucuya JSON biçiminde gönderir.
  • Sunucu daha sonra istemciyle bir bağlantı kurar ve isteği ICS'ye (Instruments Command Server) iletir. Appium sunucusu ayrıca bir bootstrap.js dosyasını iOS aygıtına gönderir. ICC (Instruments Command istemcisi) komutu alır ve iOS cihaz ortamındaki bootstrap.js dosyasında çalıştırır.
  • Yukarıdaki işlem tamamlandığında, yürütülen komutun günlük ayrıntıları istemci tarafından sunucuya geri gönderilir.

Appium Android Cihazda Çalışmak

Bir android cihazda Appium, uygulamanın kullanıcı arabirimi öğeleriyle etkileşim kurmak için Android geliştiricileri tarafından geliştirilen UIAutomator çerçevesini kullanır. UI Automator, kullanıcı arayüzünü test etmek için kullanılan bir çerçevedir.

Yukarıdaki Appium Android mimarisi şekli, Android otomasyonu için Appium mimarisini açıklamaktadır. Yukarıdaki rakamlar, bootstrap.js dosyasını bootstarp.jar ile değiştirir.

Öğrenin: Android SDK: Yeni Başlayanlar İçin Ayrıntılı Bir Eğitim

Adım adım Android Appium mimarisinin kodunu çözelim

  • Appium istemcisi, JSON kablo protokolünü kullanarak Appium sunucusuyla iletişim kurar ve komutu sunucuya JSON biçiminde gönderir.
  • Appium sunucusu daha sonra istemciyle bir bağlantı kurar ve isteği ICS UiAutomator Controller'a iletir. Appium sunucusu ayrıca bir bootstrap.jar dosyasını Android cihazına gönderir. UiAutomator istemciye komut verir, ardından komutu alır ve Android cihaz ortamındaki bootstrap.jar dosyasında çalıştırır.
  • Yukarıdaki işlem tamamlandığında, yürütülen komutun günlük ayrıntıları istemci tarafından Appium sunucusuna geri gönderilir.

Ayrıca Okuyun: Full-Stack vs Android Geliştiricisi: Hangisini Seçmelisiniz

Çözüm

Appium, şüphesiz mobil uygulama testi için en popüler platformlardan biridir. Şimdiye kadar Appium mimarisine , iş akışına ve Appium'un iOS ve Android platformlarındaki çalışmasına genel bakış hakkında bilgi edindiniz.

Full-stack yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve Full-stack Yazılım Geliştirme PG Diplomasına göz atın. atamalar, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Geleceğin Kariyerine Hazırlanın

YÜKSELTME VE IIIT-BANGALORE'NİN PG DİPLOMASI FULL STACK YAZILIM GELİŞTİRMEDE
Şimdi Uygula