Appium ile Mobil Test Otomasyonu — Appium Nedir? #1

emirhanaktas
Appcent
Published in
4 min readNov 2, 2022

Herkese merhabalar,

Ben Emirhan AKTAŞ. Appcent şirketinde 1 yıldır Yazılım Test Mühendisi olarak çalışmaktayım. Bu serimizde sizlerle “Appium ile Mobil Test Otomasyonu” konusu ile birlikte olacağız. Bu yazımızda ise başlangıç olarak Appium nedir, hangi alanlarda kullanılır, hangi amaçla kullanılır, mimarisi nasıldır, avantajları ve dezavantajları nelerdir gibi konuları işleyeceğiz. Kemerlerinizi bağladıysanız, uçuşa geçebiliriz. 🚀

Nedir Bu Appium?

Appium yerel, mobil ve hibrit uygulamaların otomatik olarak test edilebilmesi yani otomasyon testi için kullanılan bir açık kaynaklı test framework’üdür. Platformlar arası paralel otomasyona olanak vererek aynı test senaryolarının birden çok platformda çalıştırılmasını sağlar. Açık kaynaklı yani ücretsiz olarak hizmet sağlıyor olması hem kullanım açısından hem de maliyet açısından çok büyük bir avantaj sağlamaktadır. Bu özellikleri sayesinde piyasada en çok kullanılan test framework’lerinden bir tanesidir diyebiliriz. O zaman gelelim fasulyenin faydalarına. 😎

Appium ile Neler Yapabiliriz?

-Android mobil uygulama otomasyon testi

-IOS mobil uygulama otomasyon testi

-Windows masaüstü uygulama otomasyon testi

-Paralel test yürütme

Platformlar arası mobil test yapmamıza imkan sağlayan Appium’da Android ve iOS platformları için tek API yeterlidir. Son zamanlarda Appium ile Windows masaüstü uygulamaları için de test otomasyonları sıklıkla yazılmaktadır.

Peki Hangi Diller Kullanılabilir?

Appium, Selenium istemci kütüphanesine sahip olan birçok programlama dilini desteklemektedir. Bunlardan en çok bilinen diller:

-Java

-C#

-Python

-JavaScript

-PHP

-Ruby

-Node.js

Bu yönüyle de Appium, programlama dillerindeki geniş yelpazesiyle kullanıcılara diledikleri seçimi yapabilme imkanı sunmaktadır. İyi hoş yazalım, yazalım ama nasıl yazacağız diyenleri duyuyor gibiyim. Hiç merak etmeyin. Sıradaki yazılarımızda hepsine değineceğiz.

Appium Mimarisi | Nasıl Çalışır?

-Appium, Node.js kullanılarak yazılan bir HTTP sunucusudur.

-İstemci, Appium sunucusuyla REST API’lar aracılığıyla iletişim kurar ve bu iletişim Mobile JSON Wire Protocol tarafından yönetilir.

-Sunucu, istenen Capabilities bağımsız değişkenlerini kullanarak iOS isteği ile Android isteği arasında ayrım yapar.

-Gerekli ayrım yapıldıktan sonra emülatör/gerçek cihazda oturum başlatabilir.

-Oturum başlatma, temelde istemci tarafından yapılan bir POST isteğidir.

-Appium, bu isteğe bir oturum kimliği formunda yanıt verir.

Oturum kurulduktan sonra, istemci ve Appium sunucusu referans olarak oturum kimliğiyle etkileşime girer.

Appium | Android

Android’de Appium, otomasyon için UIAutomator framework’ü kullanır. Nedir bu UIAutomator diyecek olursanız, otomasyon amacıyla Android tarafından oluşturulmuş bir framework’tür. Android uygulamaları içerisindeki UI’ları inleyebilmemizi sağlayan bir framework’tür aslında. Peki Appium’da bu yapının nasıl çalıştığını inceleyelim.

-İstemci kütüphanesi, kullanıcı tarafından yazılan komutları REST API isteklerine dönüştürür.

-Bu istekler Mobil JSON Tel Protokolü kullanılarak Appium sunucusuna gönderilir.

-UIAutomator istemci işlemlerini gerçekleştirmek için emülatör/gerçek cihazda çalışan bootstrap.jar ile iletişim kurar.

-bootstrap.jar, işlemi UIAutomator kullanarak Android cihazda gerçekleştirerek test komutunu göndermek için kullanabileceğimiz bir TCP sunucusu rolünü oynar.

Android’i anlattıysak, iOS eksik kalır mı? Ee tabii ki eksik kalmaz.

Appium | iOS

iOS’ta Appium, uygulamanın UI bileşenleriyle iletişim kurmak için XCUI Test API‘ını kullanır. XCUITest, Apple’ın XCode’u ile birlikte gelen otomasyon framework’üdür.

-Appium istemcisi, Appium sunucusuna bağlanır ve JSON Tel Protokolü aracılığıyla iletişim kurar.

-Appium Server, istemci için bir otomasyon oturumu oluşturur ve XCUI Test framework’ü ile bağlantı kurar.

-XCUI Testi daha sonra istemci işlemlerini gerçekleştirmek için bir emülatör veya gerçek cihazda çalışan bootstrap.js ile iletişim kurar.

Bootstrap.js, test edilmekte olan uygulama üzerinde eylemi gerçekleştirir.

(Kaynak: Testingdocs)

Appium’un Avantajları

-Programlama dilindeki geniş yelpaze sayesinde kullanıcılara genellikle dilediği seçimi sunar.

-Çoklu platform desteği sağlayarak aynı test senaryolarının birden çok platformda çalıştırılabilmesine imkan verir.

-Testleri otomatize ederek zamandan tasarruf sağlar.

-Uygulamayı otomatize etmek için yeniden derlemeye veyahut değiştirmeye gerek yoktur.

-Emülatör veya gerçek cihaz kullanım imkanı sağlar.

-Kod üzerindeki değişiklikler uygulamanın yeniden yüklenmesini gerektirmez.

Açık kaynaklıdır ve ücretsiz olarak hizmet verir.

Yani şimdi bu kadar avantajdan sonra aklınıza Orhan Gencebay’dan “Hatasız Kul Olmaz” şarkısı gelmiştir. Bence de haklısınız, hatasız kul olmadığı gibi dezavantajsız test framework’ü de olmaz diyelim. Ee hadi gelin inceleyelim. :)

Appium’un Dezavantajları

-Grafiksel Kullanıcı Arayüzü yetersiz ise test oluşturma süresi yavaşlayabilir.

-Testler bir web sürücüsüne uzaktan bağlı olduğu için zaman zaman yavaşlıklar yaşanabilir.

-Veri alışverişlerini test etmek zordur.

Bu yazımızda sizlerle birlikte Appium’un ne olduğundan, hangi alanlarda kullanılabileceğinden, hangi programlama dilleriyle yazılabileceğinden ve hangi amaçlarla kullanıldığından, avantajları ve dezavantajlarının ne olduğundan bahsettik. Sıradaki yazımızda ise Appium ve gerekli tüm uygulamaların kurulumlarından bahsediyor olacağız. Daha sonrasında ise işin mutfağına girerek, Appium ile buglara dünyanın kaç bucak olduğunu göstereceğiz. 🧐

KAYNAK

https://i.pinimg.com/originals/cc/c6/1e/ccc61e6c5584455b277f175ec09e6da5.gif

--

--

emirhanaktas
Appcent
Writer for

Borusan Lojistik via Testinium | Software Test Automation Engineer