SELENİUM

Selenium hakkında geniş bilgileri barındıran bu yazımda size bir çok şeyi anlatmaya çalıştım.

1- Selenium Tarihçesi
2- Selenium Web Sürücüsü Nasıl Çalışır?
3- Selenium WebDriver
4- Test Cases Management And Test Run(Test Case Yönetimi Ve Çalıştırılması)
5- Selenium’un Otomasyon Testi Sırasında Önemli Olmasının Sebepleri 6- Selenium Geleceği
7- Selenium Sınırlamaları
8- Meetup

Web Sitesi: www.seleniumhq.org
Yazıldığı Dil: Java
Lisans: Apache Lisansı 2.0
Repository: https://github.com/SeleniumHQ/selenium
İşletim Sistemi: Cross-platform
Kararlı Sürüm: Version 3.141.59 – 19 Kasım 2018

Selenium ilk olarak 2004 yılında Jason Huggins tarafından ThoughtWorks dahili bir araç olarak geliştirilmiştir . Huggins daha sonra ThoughtWorks’teki diğer programcılar ve testçiler tarafından katıldı, Paul Hammant takıma katıldı ve daha sonra “Selenium Remote Control (Selenium Uzaktan Kumandası)” (RC) olacak olan ikinci çalışma modunun gelişimini yönlendirdi. Araç o yıl açık kaynaklıydı.

2005 yılında, Dan Fabulich ve Nelson Sproul (Pat Lightbody’in yardımıyla), Selenium-RC’yi en iyi bilinen haline dönüştürecek bir dizi yamayı kabul etmeyi teklif etti. Aynı toplantıda, Selenium’un bir proje olarak yönetilmesi, Huggins ve Hammant’ın ThoughtWorks temsilcileri olmasıyla bir komite olarak devam edecektir.

2007 yılında Huggins Google’a katıldı. Jennifer Bevan gibi diğerleri ile birlikte, Selenium RC’nin geliştirilmesi ve dengelenmesi ile devam etti. Aynı zamanda, ThoughtWorks’teki Simon Stewart, WebDriver adında üstün bir tarayıcı otomasyon aracı geliştirdi. 2009 yılında, Google Test Otomasyon Konferansı’ndaki geliştiriciler arasında yapılan bir toplantıdan sonra, iki projenin birleştirilmesine ve yeni proje Selenium WebDriver veya Selenium 2.0 olarak adlandırılmasına karar verildi.

2008'de, Philippe Hanrigou (daha sonra ThoughtWorks’te), herhangi bir sayıda yerel veya uzak sistemde eşzamanlı olarak birden fazla Selenium testinin yürütülmesini sağlayan ve böylece test yürütme süresini en aza indiren bir merkez olan “Selenium Grid” i yaptı. Grid, açık kaynak olarak Selenium RC için dahili / özel Google bulutuna benzer bir yetenek sundu. Pat Lightbody, Gomez, Inc.’e satmaya devam ettiği “HostedQA” için zaten özel bir bulut yapmıştı.

Yine de Selenium’un açık kaynak haline geldiği gerçeği çok önemliydi. Herhangi biri ücretsiz olarak kullanabileceğinden aracı popüler hale getirmeye yardımcı oldu. Herkes, özellik kümesini genişletmeye yardımcı olmak için katkıda bulunabilir.

“Last but not least” (Sonuncu ama bir o kadar önemli), bu hareket Selenium’u hızla büyüyen açık kaynak uygulamaları yığını içine yerleştirdi. 2000'li yılların başlarında, Red Hat gibi şirketler Linux ve ücretsiz olarak verilen diğer yazılımların büyük bir ticari değeri olabileceğini gösterdikleri zamandı. Ayrıca açık kaynaklı web tarayıcıları, yani Mozilla Firefox ve OpenOffice gibi kelime işlemcileri, kapalı kaynak kodlu araçlarını paraları için kullandıkları zamandı. Tabi Apache HTTPd gibi açık kaynaklı web tarayıcıları, zaten yıllarca pazar payının çoğunluğunu elde etmişti. Bu zemine karşı, açık kaynaklı Selenium yalnızca anlamlıdır. Süreçleri aşağıdaki resimde gördüğünüz gibidir.

2- Selenium Web Sürücüsü Nasıl Çalışır?

Selenium otomasyon komut dosyası çalıştırıldığında. Aşağıdaki eylemler gerçekleşir:

  • Selenium komutlarının her biri için yürütülen bir HTTP isteği oluşturulur ve tarayıcı sürücüsüne gönderilir.
  • HTTP istekleri, HTTP sunucusu kullanan sunucu tarafından alınır.
  • HTTP sunucusu, selenium komutunu uygulamak için gereken adımları belirler ve bunları tarayıcıda yürütür.
  • Yürütülen komutların durumu daha sonra HTTP Sunucusuna geri gönderilir.
  • HTTP sunucusu daha sonra yürütme durumunu HTTP sunucusuna gönderir.

Selenium web sürücüsü hakkında daha fazla bilgi almak için www.seleniumhq.org okuyun.

3- Selenium WebDriver

Daha öncesinde Selenium’un en önemli projelerinden bir tanesi Selenium RC’di. WebDriver’ın eklenmesinden sonra Selenium 2.0 olarak yayınlandı. WebDriver, Selenium’un kendi içinde geliştirmiş olduğu en önemli özelliklerinden biri diyebiliriz. Çünkü WebDriver, test yapan kişilerin isteklerine göre browserın kendi metodlarını kullanarak işlem yapabilir. WebDriver bir çok browserda çalışmaktadır.(Firefox,Chrome,Opera, Safari, Internet Explorer) Bu durum test uzmanları için güzel bir özellik olup, browserların davranışlarını daha yakından görerek müdahele etmelerine olanak sağlar.

WebDriver’ın geliştirilmesindeki en büyük amaç dinamik web sitelerinin içeriklerinin belli bir kısmının değişimi sırasında tüm sayfanın tekrardan yüklenmeden yapılan değişiklikleri görerek test caselerinizi devam ettirmenizde yardımcı olmaktır. WebDriver sayesinde yapmış olduğunuz projenin testi için kullanmanız gereken tek şey WebDriver API’ı indirmektir. API sayesinde projenizin diline göre Java, .NET, Python, Ruby, PHP,Perl gibi dillerini kullanarak test scriptlerinizi yazabilirsiniz. Tabii ki bu aracın kullanımını için geliştirme yapmak gerekiyor.

Selenium web sitesindeki tanımıyla bir “Browser Automation” aracı, yani web sitelerinin bazı test adımlarını web tarayıcınız üzerinden otomatik şekilde oluşturmanızı ve işletmenizi sağlayan bir araç. Örneğin web sitenizin kullanıcı kayıt sayfasının düzgün ve hatalı çalışma senaryolarını test etmek isteyebilirsiniz Selenium ile kullanıcı kayıt sayfasının açılması ve sayfadaki input alanlarının doldurulması ve butona tıklanması gibi adımları otomasyonunu yazabilirsiniz. Yani uygulamanıza ait olan fonksiyonel testleri yapmanızı kolaylaştırıyor diyebiliriz. Bu şekilde farklı senaryoları kaydederek ilerleyen zamanlarda bu senaryoları kendiniz manuel yapmadan yerine Selenium’a yaptırabiliyor ve test sonuçlarını inceleyerek detaylı “sonuçlar başarılı” veya “bazı senaryolarda sorun var” görebiliyorsunuz.

Selenium’u browser kullanarak test otomasyonu yazmak istersek Selenium IDE, oluşturulan bir web projesini veya hazırda olan bir web projesini programlama dillerinden biri ile test etmek istiyorsak Selenium WebDriver kullanmalıyız.

WebDriver birçok programlama dili ile (C#, Java, Python) birden fazla browser (Chrome, Firefox) üzerinde çalışmaktadır. Selenium’u çeşitli programlama dilleri ile yazabilirsiniz Python,java,ruby vb. https://selenium.dev/documentation/en/ bu sayfadan Selenium’un hangi platformları desteklediğini kontrol edebilirsiniz. Çalışma mimarisi resimdeki gibidir.

Selenium’u desteklediği tüm tarayıcılarda çalıştırabiliyoruz. Bu tarayıcılar için ayrı ayrı Driver dosyaları var. Bu Driver dosyaları Selenium kütüphanesi ile tarayıcılar arasında bir bağ kurulmasını sağlıyor. Bu Driver dosyalarını isterseniz projenizin içerisinde isterseniz de farklı bir ortamda tutabilirsiniz.Burada sizi zorlayacak olan şey eğer ekip halinde çalışıyorsanız ve herkes farklı bir işletim sistemi kullanıyor ise bu Driver dosyaları işletim sisteminden işletim sistemine farklılık gösterdiği için manuel olarak ayarlamak zorunda kalabilirsiniz. Bu durumu bir yapıya oturtmanız gerekiyor yoksa herkes projenin içerisinden Driver instance ettiğimiz yerlerden Driver yolunu kendi işletim sistemine uygun olan Driverın yolu ile değiştirmek zorunda kalacaktır. Bu kısımda Driver instance işlemi yaparken çalıştığı işletim sistemine bakıp hangi işletim sistemi üzerinden çalışıyor ise o işletim sistemine uygun olan Driver’ın instance edilmesini sağlanabilir.

Yazılım test otomasyonunun tek bir tanımı olmamakla birlikte; sürekli yaptığımız manuel testlerin otomatik hale getirilip, bizim açımızdan zamandan tasarruf, hata oranlarının azalması, daha kaliteli bir yazılım ortaya çıkması gibi sonuçları var iken şirket açısından da bunların dışında, maliyetten kazanç olarak da görülebilir.

4- Test Cases Management and Test Run(Test Case Yönetimi Ve Çalıştırılması)

Selenium tarafında yazdığımız testlerimizi uzun vadede iyi yönetiyor olmamız gerekiyor. İlk başlarda test sayımız az olacağı için bu durumu pek önemsemeyen biliriz ama testlerimiz arttıkça onları yönetmesi de baya zorlanacaktır. Öncelikle bize yazdığımız testlerimizin çalıştırılacağı bir ortam gerekiyor çünkü tüm bu testleri kendi bilgisayarımızda çalıştıramayız. Ben bu kısımda Jenkins kullanılmasını öneriyorum. Jenkins tarafına projemizi kurarak istediğimiz testlerimizi istediğimiz aralıklarla otomatik olarak çalıştırıp bize raporlamasını sağlayabiliriz. Jenkins bir continuous integration aracı olduğu için sizin deployment süreçlerinizde testlerinizi otomatik olarak çalıştırmanızı bile sağlamayabilir ve sizi testlerinizi çalıştırmak için harcayacağınız gereksiz iş yükünden kurtarır. Örneğin yazılım geliştirici deployment sürecini başlatır öncelikle sizin testleriniz çalışır eğer tüm testleriniz başarılı bir şekilde çalışır ise deployment yapılmış olur başarısız olur ise deployment sürecini durdurabileceğiniz bir araç olarakta kullanabilirsiniz. Jekins ile ilgili detaylı bilgiye https://jenkins.io/ bu adresten uğlaşabilirsiniz.

5- Selenium’un Otomasyon Testi Sırasında Önemli Olmasının Sebepleri

Her yıl pazarda görünen sayısız test aracı vardır. Selenium, birçok yerleşik avantajı nedeniyle önlerinde kalmayı başardı. Selenium bazlı otomasyon testleri, aşağıda listelenen bu özellikler nedeniyle geniş bir kullanım alanı kazanmıştır:

  • Açık kaynaklı yazılım test aracı : Selenium, piyasadaki tek test aracı değildir, ancak ücretli ürünlerle rekabet edebilecek tek ücretsiz araçtır. Pek çok teknoloji kuruluşu, düşük maliyetli çözümü nedeniyle bunu kullanıyor. Büyük şirketler bile, uygulanabilir bir seçenek olduğunda binlerce doların tüketildiği ücretli seçeneklere geçmek için acele etmiyor.
  • Selenium herhangi bir işletim sistemiyle uyumludur: Selenium piyasadaki diğer otomasyon araçlarının aksine, neredeyse her işletim sisteminde çalışabilecek kapasiteye sahiptir.
  • Dil desteği: Çoğu ücretli üründen farklı olarak, Selenium paketi Python, Pearl, Ruby, PHP, .NET, Java ve benzeri otomasyon testleri sırasında birçok dili destekler. Selenium tabanlı otomasyon testleri oluşturabilmeniz için yalnızca bu dillerden birinde rahat olmanız gerekir.
  • Çapraz tarayıcı desteği : Selenium tarafından desteklenen, safari, krom, IE 6, 7, 8 ve Mozilla Firefox’u içeren tarayıcı aralıkları vardır.
  • Selenium tabanlı otomasyon testleri, çok dinamik bir Geliştiriciler topluluğu olan bir Google Topluluğu tarafından desteklenmektedir. Ayrıca, iDataLab’lar, Veri odaklı araştırma şirketleri ve benzeri gibi diğer büyük topluluklar tarafından da desteklenmektedir.
  • Otomasyon testi sırasında Selenium paketlerinin işlevselliğini artırmak. Selenium ayrıca TestNG, Junit, NUnit ve benzeri açık kaynak kodlu çerçevelerin entegrasyonu için destek sunar . Sürekli test yapmak için Maven, Jenkins ve diğerleri ile de entegre edilebilir.
  • Selenium tabanlı otomasyon testleriyle paralel test yapmak mümkündür . Selenium, çeşitli makinelerde çeşitli tarayıcılarda kullanılan eş zamanlı testleri destekler. Bu, büyük projelerde Selenium otomasyon testleri gerçekleştirirken, metin yürütme çalışma zamanını azaltmaya yardımcı olur.
  • Mobil testi destekler: Selenium otomasyon araçlarıyla, cep telefonunu kullanarak Selenium otomasyon testlerini Appium ve Selendroid gibi ek yazılımlar yardımıyla gerçekleştirebilirsiniz.

6- Selenium Geleceği

Otomatik testlerin talepleri değişmeye devam ediyor. Selenium’un da alacağı güvenli bir bahis. Selenium gelişimini ilerletecek şekilde şekillendirmesi muhtemel önemli bir eğilim, her zamankinden daha verimli otomatikleştirilmiş testlere olan talep. Selenium ekosistemi, Selenium grid ve diğer araçlar sayesinde bir süre için bazı otomasyon seçenekleri sunmuştur. Ancak DevOps hareketi, geliştirme ekipleri üzerinde yazılımları olduğundan daha hızlı bir şekilde test etmek ve sunmak için baskı yarattığından, testleri buluta tahliye etme ve paralel olarak çalıştırma gibi hızlandırma teknikleri kilit kalır.

Selenium’u bugün optimize etmek, Selenium’u yazılım dağıtım hattında çalışmak görevini kolaylaştıran zengin bir eklenti ekosistemi ve entegrasyonları sayesinde daha kolaydır. Geliştirme iş akışları şimdi olduğundan daha karmaşık olduğundan ve zaman içinde daha da karmaşık bir hale geleceğinden, Selenium’u çevreleyen ekosistem, Selenium’un modern uygulama testleriyle alakalı kalmasına yardımcı olmak için elzem kalmaya hazırlanıyor.

7- Selenium Sınırlamaları

  • Windows Yerel uygulama testi: Selenium otomasyon araçları, web tabanlı sınama güvenliğini destekler. Bir windows testinde yazılım testleri yapmak için bir yazılım test cihazı için, otomasyon testini etkinleştirmek için ek eklentiler entegre etmesi gerekir.
  • Görüntü testi için ideal değil: Görüntüler üzerinde otomasyon testlerinin yapılması ideal bir işlem değildir. Görüntü doğrulama işlemini gerçekleştirmenin en kolay yolu testi manuel olarak yapmaktır. Bu, gerçek bir problem haline gelir çünkü tekrarlayan test sorununu geri getirir. Bu, Selenium yazılım testi sırasında yazılım testlerinde görüntü doğrulamalarını göz ardı ederek sonuçlanır.
  • Selenium için garantili teknik destek yoktur . Yardım için mevcut çevrimiçi topluluklara güvenmemiz gerekiyor.
  • Dik öğrenme eğrisi : Selenium otomasyon testini gerçekleştirmek için gereken derin programlama bilgisinden kaynaklanmaktadır. Bir çok test cihazı ondan uzak durdu.

Dünyanın web ve mobil uygulamalara doğru ilerlediği açıktır. Tüm web ve mobil yazılım türleri dünya çapında web’de günlük olarak barındırılıyor ve bu da birkaç amaca hizmet ediyor. Bu, otomatik web test hizmetlerine olan ihtiyacı arttırır. Selenium otomasyonu web tabanlı servislerin en iyi ve en uygun fiyatlı web test hizmetleri arasında olduğu kanıtlanmıştır ve sürekli olarak sürekli iyileştirmeler yapılmaktadır.

8- Meetup
En iyi yanlarından bir tanesi bu alanda çok iyi işler çıkarmak isteyen ve beklentisini yüksek tutan firmalar öğrendiklerini paylaşmaktan kaçınmıyorlar ve herkesi bir adım daha ileri tanışmak ve farkındalığı attırmak için hemen hemen ayda bir tane meetup düzenliyor ve çok iyi verimli etkinlikler oluyor. https://www.meetup.com/ takip edip sizlerde katılabilirsiniz…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade