Appium ile Mobil Uygulama Testlerinde Devrim

Yasin Bulgan
Innova-tech
Published in
8 min readDec 18, 2023

--

Dijital dünya, hızla genişleyen bir evren. Akıllı telefonların her cebe girmesiyle birlikte, mobil uygulamalar da günlük yaşamın vazgeçilmez bir parçası haline geldi. Statista’nın 2023 raporuna göre, mobil uygulama indirmeleri dünya çapında milyarlarca kez gerçekleşiyor ve bu sayı her geçen yıl artıyor. Bu hızlı büyüme, geliştiriciler için hem büyük fırsatlar hem de büyük zorluklar getiriyor. Rekabetin bu kadar yüksek olduğu bir pazarda, kullanıcıların ilgisini çekmek ve sadakatini kazanmak kolay değil.

Uygulama Kalitesinin Kritik Rolü

Kullanıcılar, aradıkları içerik ve işlevselliği sunan uygulamalara yöneliyor. Ancak bu yeterli değil; kullanıcı deneyimi (UX) de en az işlevsellik kadar önem taşıyor. UX, bir uygulamanın başarısında belirleyici bir faktördür ve bu deneyimi oluşturan en önemli unsurlardan biri de uygulamanın kalitesidir. Kaliteli bir mobil uygulama, sadece iyi bir fikirle veya çekici bir tasarımla sınırlı değildir; aynı zamanda hata oranının düşük olması, yüksek performans ve güvenilirlik gibi özellikleri de içerir.

Otomatik Testlerin Elle Testlere Üstünlüğü

Geleneksel elle yapılan testler zaman alıcı ve hata yapmaya açıktır. Bu yüzden otomatik test araçları devreye girer. Otomatik testler, tekrarlanabilir ve hızlı bir şekilde uygulama testleri yapmayı sağlar. Appium gibi araçlar, geliştiricilere çoklu platformlarda (iOS, Android) ve çeşitli cihazlarda uygulamalarını test etme imkanı sunar. Bu, hataları daha erken fark etmeyi ve düzeltmeyi, dolayısıyla uygulama kalitesini artırmayı sağlar.

Otomatik testlerin elle yapılan testlere göre birçok avantajı vardır:

  • Hız ve Verimlilik: Otomatik testler, elle yapılan testlere göre daha hızlı sonuçlar verir ve test süreçlerini hızlandırır.
  • Doğruluk: İnsan hatalarını minimize ederek daha doğru sonuçlar elde edilir.
  • Tekrarlanabilirlik: Aynı test senaryoları, farklı cihazlar ve sürümler üzerinde kolayca tekrarlanabilir.
  • Maliyet Etkinliği: Uzun vadede, otomatik testler zaman ve kaynak tasarrufu sağlayarak maliyetleri düşürür.

Sonuç olarak, mobil uygulama testleri, günümüzün rekabetçi pazarında uygulamaların başarısı için kritik öneme sahiptir. Appium gibi otomatik test araçları, bu süreci kolaylaştırarak geliştiricilere zaman ve maliyet tasarrufu sağlar ve son kullanıcıya daha iyi bir deneyim sunar. Kaliteli bir uygulama geliştirmek için otomatik testlerin gücünden yararlanmak, bugünün geliştiricileri için kaçınılmaz bir seçimdir.

Mobil Otomasyon Testlerinde Bir Standart

Mobil teknolojinin giderek artan karmaşıklığı, uygulama geliştiricilerin karşılaştığı test zorluklarını da beraberinde getiriyor. İşte bu noktada, Appium devreye giriyor. Peki, Appium tam olarak nedir ve mobil uygulama test süreçlerini nasıl dönüştürmeye yardımcı oluyor?

Appium’un Tanımı

Appium, açık kaynaklı bir test otomasyon aracıdır ve mobil uygulamaların, hem yerel hem de web tabanlı uygulamaların, otomatik testlerini gerçekleştirmek için kullanılır. Selenium WebDriver’ın temelleri üzerine inşa edilmiş olan Appium, mobil uygulama testleri için endüstri standartlarından biri haline gelmiştir.

Appium’un Özellikleri ve Avantajları

Appium, platformlar arası testler sunarak geliştiricilere büyük esneklik sağlar. Bu, bir test süitesinin Android ve iOS işletim sistemleri arasında yeniden kullanılabilir olması anlamına gelir. Ayrıca, kullanıcı arayüzüne (UI) dayalı testlerin yanı sıra, API testleri gibi daha karmaşık test senaryolarını da destekler.

Appium’un en önemli özelliklerinden bazıları şunlardır:

  • Platformlar Arası Uyumluluk: Android ve iOS dahil olmak üzere çoklu platformlarda çalışabilme yeteneği.
  • Dil Bağımsızlığı: Java, Python, Ruby, JavaScript gibi popüler programlama dilleri ile uyumlu çalışma.
  • Sürücü Tabanlı Çerçeve: Yerel, mobil-web ve hibrit uygulamalar için destek.
  • Kullanıcı Deneyimini Taklit Etme: Gerçek kullanıcı eylemlerini (tıklama, kaydırma, yazma vb.) otomatize etme.

Bu özellikler, geliştiricilere test süreçlerinde büyük bir rahatlık ve kontrol sağlar. Uygulamaları, kullanıcıların karşılaşabileceği gerçek dünya senaryolarına benzer şekilde test etmek mümkün olur.

Desteklenen Diller ve Platformlar

Appium, WebDriver protokolünü kullanarak çeşitli dillerde yazılmış test script’lerini destekler. Geliştiriciler, kendilerine en uygun programlama dilini seçebilir ve bu dilde test senaryolarını geliştirebilir. Appium, ayrıca, iOS için XCUITest ve Android için UIAutomator gibi platforma özgü araçlarla da uyumludur. Bu, geliştiricilerin uygulamalarını daha geniş bir cihaz yelpazesi üzerinde doğru bir şekilde test etmelerine olanak tanır.

Sonuç olarak, Appium, mobil uygulama testleri için güçlü, esnek ve kullanımı kolay bir araçtır. Geliştiriciler arasında popülerliği ve açık kaynaklı doğası, onu mobil test otomasyonunun vazgeçilmez bir parçası yapar. Appium ile, uygulama kalitesini artırırken, zaman ve kaynaklardan tasarruf etmek mümkündür.

Appium’un Mimarisi: Mobil Test Otomasyonunda Esnekliğin Anahtarı

Appium, mobil otomasyon testlerinde bir devrim yaratmış bir araçtır ve bu başarısının arkasında yatan güçlü mimarisi ve çalışma prensipleri yatar. Bu yazıda, Appium’un mimarisini ve bu mimarinin nasıl bir esneklik sağladığını inceleyeceğiz.

Client/Server Mimarisi

Appium, client/server mimarisine dayanır. Bu, test script’lerinin (client tarafı) Appium server üzerinde çalıştırıldığı anlamına gelir. Geliştiriciler, tercih ettikleri programlama dilini kullanarak test kodlarını yazabilir ve bu kodlar, Appium server aracılığıyla mobil cihazlara veya emülatörlere/simülatörlere komut olarak gönderilir. Appium server, bu komutları alır ve mobil cihazın yerel otomasyon çerçevesi üzerinde çalıştırır.

WebDriver Protokolü ve Appium

Appium, Selenium WebDriver’ın protokollerini kullanır. WebDriver, web tarayıcıları için bir otomasyon standardı olarak kabul edilir ve Appium bu protokolleri genişleterek mobil cihazlar için de kullanılabilir hale getirir. WebDriver protokolü sayesinde, Appium bir komutu alır ve cihazın yerel otomasyon çerçevesi ile etkileşime geçerek gerekli UI eylemlerini gerçekleştirir.

Platformlar Arası Testler için Esneklik

Appium’un en büyük avantajlarından biri, platformlar arası test yapabilme yeteneğidir. Geliştiriciler, aynı test senaryolarını iOS ve Android platformları arasında yeniden kullanabilirler. Bu, kod tekrarını azaltır ve test süreçlerinin verimliliğini artırır. Appium, platform özgü kodları soyutlayarak, geliştiricilerin farklı platformlar için ayrı ayrı test script’leri yazma ihtiyacını ortadan kaldırır.

Sonuç olarak, Appium’un client/server mimarisi ve WebDriver protokolü kullanımı, mobil test otomasyonunda önemli bir esneklik sağlar. Geliştiricilerin farklı platformlarda ve cihazlarda uygulamalarını hızlı ve etkin bir şekilde test etmelerine olanak tanıyan bu özellikler, Appium’u endüstride bir standart haline getirmiştir.

Appium Kurulumu ve Konfigürasyonu: Mobil Test Otomasyonuna Giriş

Mobil test otomasyonu, geliştiriciler için zamandan tasarruf etmenin ve uygulama kalitesini artırmanın bir yoludur. Appium, bu süreci kolaylaştıran açık kaynaklı bir araçtır. Bu yazıda, Appium’un nasıl kurulacağı ve konfigüre edileceği hakkında adım adım bilgiler vereceğiz.

Gerekli Araçlar ve Bağımlılıklar

Appium’u başarıyla kurmak ve çalıştırmak için, bilgisayarınızda bazı araçların ve bağımlılıkların yüklü olması gerekir. Bunlar arasında:

  • Node.js ve npm (Node Package Manager): Appium, Node.js üzerine kuruludur ve npm, Appium ve diğer bağımlılıkların yüklenmesi için kullanılır.
  • Java Development Kit (JDK): Android uygulamaları için otomasyon testleri yapmak istiyorsanız, JDK’nın yüklü olması gerekir.
  • Android SDK ya da Xcode: Android veya iOS cihazlarda test yapabilmek için bu geliştirme araçlarının yüklü olması şarttır.

Appium Server ve Appium Desktop Kurulumu

Appium kurulumu iki şekilde yapılabilir: Appium Server ve Appium Desktop.

  • Appium Server: Komut satırı aracılığıyla ‘npm’ kullanarak kurulur. npm install -g appium komutu ile global olarak kurulabilir.
  • Appium Desktop: Grafik kullanıcı arayüzüne sahip bir versiyondur ve Appium’un resmi web sitesinden indirilebilir.

Her iki durumda da, kurulumdan sonra appium komutunu kullanarak Appium Server'ı başlatmalısınız.

Test Cihazlarının ve Emülatörlerin/Simülatörlerin Hazırlanması

  • Android için:
  • Android Studio yükleyin ve Android SDK’yı kurun.
  • Bir Android Virtual Device (AVD) oluşturun veya gerçek bir cihazı geliştirici modunda bilgisayarınıza bağlayın.
  • adb devices komutunu kullanarak cihazınızın Appium tarafından görülüp görülmediğini kontrol edin.
  • iOS için:
  • Xcode’u yükleyin ve bir iOS simülatörü kurun veya bir iPhone’u bilgisayarınıza bağlayın.
  • Xcode ile birlikte gelen simülatörleri kullanarak testlerinizi yapabilirsiniz.

Test cihazlarınızı veya emülatör/simülatörlerinizi hazırladıktan sonra, Appium ile ilk testlerinizi çalıştırmaya hazır olacaksınız.

Bu rehber, Appium’u başarıyla kurmanıza ve mobil otomasyon testlerine başlamanıza yardımcı olmalıdır. Her adımı dikkatle takip edin ve mobil uygulama test otomasyonunun avantajlarından yararlanmaya başlayın.

Appium ile Element Bulma Stratejileri: Etkili Otomasyon Testleri İçin Temel Rehber

Mobil uygulama test otomasyonu, doğru elementleri etkili bir şekilde tanımlayıp etkileşim kurabilmek üzerine kuruludur. Appium, geliştiricilerin bu elementleri bulmalarını ve onlarla etkileşim kurmalarını sağlayan güçlü araçlar sunar. Bu yazıda, Appium kullanarak element bulma stratejilerine ve bu stratejilerin nasıl uygulanacağına dair temel bilgileri paylaşacağız.

Locator Stratejileri ve Kullanımı

Appium’da bir elementi bulmak için çeşitli locator (bulucu) stratejileri mevcuttur. Bunlar arasında:

  • ID: Genellikle en hızlı ve en güvenilir bulucu yöntemidir.
  • XPath: DOM üzerinde karmaşık sorgular yapmak için kullanılır, ancak performans açısından maliyetlidir.
  • Accessibility ID: Engellilere yönelik erişilebilirlik özellikleri için kullanılan tanımlayıcılar.
  • Class Name: Elementin türüne (örneğin, button, view) göre bulma.
  • CSS Selector: Webview’da kullanılan, web teknolojilerinden alışık olduğumuz bir yöntemdir.

Bu stratejiler, elementin yapısal özelliklerine, konumuna ve diğer özelliklerine bağlı olarak seçilir.

UI Automator ve XCUITest Selectorları

  • UI Automator: Android için, UI Automator Viewer aracını kullanarak elementlerin özelliklerini keşfedebilir ve bu özellikleri testlerinizde kullanabilirsiniz.
  • XCUITest: iOS için, Xcode’un Accessibility Inspector’ı elementleri tanımlamanıza yardımcı olur ve XCUITest çerçevesini kullanarak testlerinizi yazabilirsiniz.

Bu araçlar, platforma özgü locator stratejileri sağlar ve genellikle daha stabil ve güvenilir sonuçlar verir.

Elementlerle Etkileşim

Bir element bulunduktan sonra, Appium ile çeşitli etkileşimler gerçekleştirebilirsiniz:

  • Tıklama: Bir butona tıklama veya bir öğeyi seçme eylemi.
  • Yazma: Bir metin alanına veri girişi yapma.
  • Kaydırma: Listelerde veya sayfalarda kaydırma işlemi.
  • Gestures: Çeşitli jestlerle karmaşık etkileşimler (örneğin, uzun basma, sürükle ve bırak).

Bu işlemler, test senaryolarınızın gerçek kullanıcı davranışlarını taklit etmesini sağlar.

Appium ile etkili element bulma stratejileri, mobil test otomasyonunun temelini oluşturur. Doğru elementleri hızlı ve güvenilir bir şekilde tanımlamak, testlerinizin başarısını büyük ölçüde artırabilir. Bu rehber, bu sürecin nasıl yönetileceğine dair temel bilgileri sunar ve geliştiricilerin test süreçlerinde daha hızlı ve etkili olmalarını sağlar.

Appium İle Otomasyonun Derinliklerine Dalış

Mobil uygulama testi, basit senaryoların ötesine geçtiğinde, daha karmaşık ve gelişmiş stratejilerin uygulanması gereklidir. Appium, geliştiricilere bu konuda geniş bir yelpazede olanaklar sunar.

Çoklu Cihaz ve Paralel Testler

Mobil uygulamaların birçok farklı cihaz ve platformda sorunsuz çalışması gerekmektedir. Appium, çoklu cihaz ve paralel testler yaparak bu ihtiyacı karşılar. Bu yaklaşım, aynı anda birden fazla cihazda testlerin çalıştırılmasını sağlar, böylece test süreçleri hızlanır ve test kapsamı genişler.

  • Testlerin Paralelleştirilmesi: Paralel testler, CI/CD pipeline’larına entegre edilebilir, bu da sürekli entegrasyon süreçlerinde zaman kazandırır.
  • Çeşitli Cihaz Konfigürasyonları: Farklı ekran boyutları, işletim sistemleri ve versiyonlarında test yaparak uygulamanın tüm kullanıcılar için uygun olduğundan emin olunur.

CI/CD Pipeline’larına Entegrasyon

DevOps pratiklerinin bir parçası olarak, Appium testleri, sürekli entegrasyon ve sürekli dağıtım (CI/CD) pipeline’larına entegre edilebilir. Bu entegrasyon sayesinde, yeni kod commit’leri otomatik olarak test edilir ve bu, yazılım geliştirme sürecinin daha verimli ve hatasız olmasını sağlar.

  • Otomatik Tetikleme: Kod değişikliklerinin otomatik olarak testleri tetiklemesi.
  • Hata Raporlama: Test sonuçlarının ekip üyelerine hızlıca bildirilmesi ve hataların erken tespiti.

Page Object Model (POM) İle Bakımı Kolay Testler

Page Object Model (POM), test kodunun daha okunabilir, sürdürülebilir ve yeniden kullanılabilir olmasını sağlayan bir desendir. Bu modelde, uygulamanın her sayfası için ayrı bir sınıf oluşturulur ve bu sınıflar, sayfadaki elementler ve bu elementlerle etkileşim kuracak metotlar içerir.

  • Düzenli Kod Yapısı: Test kodunun daha anlaşılır ve yönetilebilir olması.
  • Bakım Kolaylığı: Uygulamada yapılan değişiklikler, sadece ilgili sayfa nesnesinde güncellenerek tüm testlerde etkili olur.

Appium ile gelişmiş test senaryoları, mobil uygulamaların daha geniş kapsamlı ve detaylı bir şekilde test edilmesini sağlar. Çoklu cihaz testleri, CI/CD entegrasyonu ve Page Object Model kullanımı, test süreçlerini optimize eder ve uygulama geliştirme ekiplerinin daha verimli çalışmasına olanak tanır.

Tabii ki, işte “Appium ve Mobil Test Otomasyonunun Geleceği: Bir Değerlendirme” başlıklı bir Medium yazısı için bir taslak:

Appium ve Mobil Test Otomasyonunun Geleceği: Bir Değerlendirme

Mobil uygulama geliştirmenin artan karmaşıklığı ve önemi göz önüne alındığında, etkin test otomasyon araçlarına olan ihtiyaç da büyümektedir. Appium, bu alanda önemli bir rol oynamaktadır. Bu yazıda, Appium’un geleceğini ve mobil uygulama test otomasyonundaki rolünü değerlendireceğiz.

Appium’un Geleceği

Appium, sürekli gelişen teknolojilere ve yeni mobil platformlara uyum sağlamak için sürekli evrim geçirmektedir. Açık kaynaklı oluşu, topluluğun yenilikleri ve iyileştirmeleri sürekli olarak eklemesine olanak tanır. İleriye dönük olarak, Appium:

  • Yapay Zeka ve Makine Öğrenimi entegrasyonları: Test süreçlerini daha akıllı ve verimli hale getirecek.
  • Daha geniş platform desteği: Giyilebilir teknolojiler ve IoT cihazları gibi yeni platformlara adaptasyon.
  • Performans ve kararlılık iyileştirmeleri: Daha hızlı ve güvenilir test süreçleri için sürekli optimizasyon.

Mobil Uygulama Test Otomasyonunda Appium’un Rolü

Appium, mobil test otomasyonu alanında bir standart haline gelmiştir. Geliştiriciler ve QA mühendisleri için sağladığı avantajlar:

  • Platformlar arası uyumluluk: Tek bir test süitesi ile çoklu platformlarda test yapma imkanı.
  • Kolay entegrasyon: CI/CD pipeline’larına ve diğer test araçlarına kolay entegrasyon.
  • Esneklik ve geniş uyumluluk: Çeşitli diller ve çerçevelerle uyumlu olması.

Bu özellikler, Appium’u mobil test otomasyonu için vazgeçilmez bir araç yapar ve gelecekte de bu rolünü sürdüreceği öngörülür.

--

--

Yasin Bulgan
Innova-tech

Test automation & CT coach, author, speaker and award-winning software developer. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.