Mobil Test Otomasyonunda Appium - Baskı Önizleme +- 42wol (https://42wol.com) +-- Forum: Programlama (https://42wol.com/forumdisplay.php?fid=5) +--- Forum: Android Geliştirme (https://42wol.com/forumdisplay.php?fid=14) +--- Konu Başlığı: Mobil Test Otomasyonunda Appium (/showthread.php?tid=43) |
Mobil Test Otomasyonunda Appium - wolfgang - 12-31-2024 Yazıya başlamadan önce: Bu yazıyı yazarken tabi ki belli bir bilgi birikimi ile başlıyorum ancak bazen bende ince noktaları bu yazıları yazarken öğreniyorum. Aslında sizlerle birlikte bende öğreniyorum demenin uzuncası. Bu yüzden de bu yazılar aslında bir nevi sizin bakış açınızla yazılıyor. Yeni başlar gibi… İyi Okumalar Otomasyonlar, bir çok alanda kullanılan yapı taşları olmaya başladı hatta oldu diyebilirim. Veri biliminde web scraping(web kazıma), web uygulamalar da testlerin otomatize edilmesi, yine aynı şekilde mobil yazılım testlerinin de otomatize hale getirilmesi… Bunlar artık bizlerin çok yabancı olmadığı işler. Peki Mobil testler de, test otomasyon sektöründe önemli yeri olan A[b]ppium’u [/b]duydunuz mu? Duyduk Tabi ki! İşimiz bu. Peki sizlere daha önce Appium bildiğimden hiç bahsetmiş miydim? İşte şimdi tam da sırası diye düşünüyorum ve sizlere kariyerin de test alanında ilerlemek isteyenlere yön vermek için yeni bir konuya başlıyorum: Appium. [b]Appium Nedir?[/b] [b]Appium[/b], açık kaynaklı, bir web sürücü kullanarak [b]Android [/b]ve [b]IOS [/b]komut dosyalarını çalıştırmak, yerel uygulamaları, mobil web uygulamalarını ve hibrit uygulamaları test etmek için kullanılan platformlar arası test otomasyon aracıdır. Piyasa da en çok kullanılan test otomasyon framework’ ü diyebilirim. 2013 yılında piyasaya beta olarak [b]Dan Cuellar[/b] tarafından sürülmüş ve 2017 yılında da beta sürümünden çıkmıştır. Detay için → [b][i]https://en.wikipedia.org/wiki/Appium[/i][/b] Amaç olarak, Mobil de Android ve IOS tarafında test yazılmasını sağlasa da artık masaüstü uygulamaların test süreçlerinde de kullanılmaktadır. windows masaüstü uygulamalar için → [b][i]http://appium.io/docs/en/drivers/windows/[/i][/b] [b]Appium Felsefesi[/b] Appium geliştirici ekibi yükselen bir yıldız olan bu framework için, 4 ana felsefe belirlemişler.
Peki Appium projesinin yapısı bu felsefeyi nasıl yaşıyor? İlk madde için ürün sahibi tarafından sağlanan otomasyon çerçevelerini kullanarak 1.maddeyi karşılıyoruz. Bu şekilde, uygulamanız için Appium’a özgü veya üçüncü taraf kodları veya çerçeveleri derlememiz gerekmez. Bu [b], gönderdiğiniz aynı uygulamayı test ettiğiniz[/b] anlamına gelir . Kullandığımız uygulama sahibi tarafından sağlanan çerçeveler şunlardır:
Appium, 3. gereksinimi aynı şekilde karşılıyor: WebDriver, web tarayıcılarını otomatikleştirmek için fiili standart haline gelmiştir ve bir [b]W3C Çalışma Taslağıdır[/b] . Mobil cihazlar için neden tamamen farklı bir şey yapıyorsunuz diyebilirsiniz? Bunun yerine protokolü , mobil otomasyon için yararlı ek API yöntemleri ile genişletilmiştir . Ulaşabileceğiniz ve daha önceden kullanıma sunulmuş yapılar linkler ile belirtildi. İncelemenizi tavsiye ederim. 4. gereksinimin verildiği açık kaynak olmalıdır — Appium açık kaynak olduğu için bunu okuyun. Burada zaten bu maddeyi de karşıladığını göreceksiniz. Bence bir tool, framework vb. kullanıyorsak, kullandığımız aracın nasıl çalıştığını yani mimarisini iyi bilmemiz gerekir. Bu yüzden aşağıdaki soruya kesinlikle yanıt verelim… Appium Mimari olarak Nasıl Çalışır? [b][i]İstemci/Sunucu Mimarisi (Client/Server Architecture)[/i][/b] Appium, Rest API kulanan bir web sunucusudur. İstemci tarafından bağlantı bilgilerini alır, bu bağlantılara ait komutları dinler, bu komutları istenilen bir mobil uygulamada yürütür ve bu komutların sonucunu temsilen bir HTTP yanıtı döner. Bir istemci/sunucu mimarisine sahip olmak birçok avantaj sağlar;
[b][i]Oturum(Session)[/i][/b] Otomasyonu her zaman bir oturum bağlamında gerçekleştiririz. İstemciler, her kitaplığa özgü bir şekilde bir sunucu ile oturum başlatırlar, ancak hepsi POST /sessio gibi sunucuya bir istek göndererek “[b]istenen yetenekler[/b]” yani “[b]desired capabilities[/b]” nesnesi adı verilen bir JSON nesnesi gönderir . Bu noktada sunucu otomasyon oturumunu başlatır ve başka komutlar göndermek için kullanılan bir oturum kimliğiyle yanıt verir. Bu kısımda ki anlattığım mimari işlemleri bilmeniz bir sonraki yazıda kuracağımız appium için daha anlamlı olacaktır. [b][i]İstenilen Yetenekler (Desired Capabilities)[/i][/b] İstenilen yetenekler, sunucuya ne tür bir otomasyon oturumu başlatmakla ilgilendiğimizi söylemek için Appium sunucusuna gönderilen bir dizi anahtar ve değerdir (yani bir harita veya bilgi kümesi). Otomasyon sırasında sunucunun davranışını değiştirebilen çeşitli yetenekler de vardır. Örneğin, Appium’a Android veya Windows yerine iOS oturumu istediğimizi söylemekistediğimiz de platformName özelliğini iOS olarak ayarlayabiliriz . Ya da Safari otomasyon oturumu sırasında, yeni pencereler açmak için ve Javascript kullanmak için safariAllowPopups kapasitesini true olarak set ederek ayarlayabiliriz. [b][i]Appium Sunucu(Server)[/i][/b] Appium, Node.js’de yazılmış bir sunucudur. Kaynaktan inşa edilebilir ve kurulabilir veya doğrudan NPM’den kurulabilir : appium server kurulumu
[b][i]Appium İstemcileri(Clients)[/i][/b] Appium’un WebDriver protokolüne uzantılarını destekleyen istemci kütüphaneleri (Java, Ruby, Python, PHP, JavaScript ve C #) vardır. Appium kullanırken, normal WebDriver istemciniz yerine bu istemci kitaplıklarını kullanmak isteyebilirsiniz. Kütüphanelerin tam listesini burada görebilirsiniz . Artık yazımızın sonuna geldik. Artık Appium’ u kullanmaya başlamak için yeterli bilgiye sahipsin. Kendini tebrik edebilirsin. Burada öğrendiğin her şey Appium’ u anlamaya ve anlamlı kullanmaya bir temel gibi düşünebilirsin. Bir sonraki yazıda Appium’ u Intellij Idea üzerinde bir proje ile daha detaylı anlatacağım. Şimdilik görüşmek üzere…. Not: bu yazı Mesut Beysülen tarafından yazılmıştır. Kaynak: https://mesutbeysulen.medium.com/mobil-test-otomasyonunda-appium-2e08406da150 |