Nedir? Selenium? Giriş Eğitimi

⚡ Akıllı Özet

Selenium birden fazla programlama dili kullanarak web uygulamalarını tarayıcılar ve platformlar genelinde doğrulamak için tasarlanmış, ücretsiz ve açık kaynaklı bir otomatik test çerçevesidir. Modern kalite güvence uygulamaları için sağlam, verimli ve ölçeklenebilir test otomasyonu sağlar.

  • Temel Prensip: Selenium çeşitli tarayıcılarda ve işletim sistemlerinde web uygulamalarının otomatik olarak doğrulanmasını kolaylaştırır, dilleri destekler Java, C#, PythonVe daha fazlası.
  • Araç Takımı Yapısı: Selenium dört ana bileşenden oluşur: IDE, Uzaktan Kontrol, WebDriver ve Grid. Her biri farklı otomasyon ihtiyaçlarını karşılar.
  • IDE ve Prototipleme: Selenium IDE, hızlı vaka oluşturma ve prototipleme için bir tarayıcı uzantısıdır, ancak basit test senaryoları için en uygunudur.
  • Uzaktan Kumanda Evrimi: Selenium Şu anda bakım modunda olan RC, tarayıcı politikası kısıtlamalarını çözerek birden fazla dilde test betiklerine izin veren ilk çerçeveydi.
  • WebDriver Uygulaması: WebDriver tarayıcılarla doğrudan iletişim kurarak, karmaşık otomasyon için işletim sistemi düzeyinde kontrol ve üstün kararlılık sunar.
  • Paralellik İçin Izgara: Selenium Grid, testlerin birden fazla makine ve tarayıcıda paralel olarak yürütülmesini sağlayarak test döngüsü süresini önemli ölçüde azaltır.
  • Tarayıcılar ve Platformlar Arası Destek: Selenium geniş yelpazede tarayıcı ve işletim sistemini destekler ve web QA için eşsiz esneklik sağlar.
  • Gerçek Dünya Etkisi: Takımlar kullanır Selenium SaaS, CI/CD ve özellik sunumunda kanıtlanmış sonuçlarla, sürüm döngülerini hızlandırmak, manuel testleri azaltmak ve tarayıcılar arasında tutarlı bir kullanıcı deneyimi sağlamak.

selenyum nedir

Nedir? Selenium?

Selenium farklı tarayıcılarda ve platformlarda web uygulamalarını doğrulamak için kullanılan ücretsiz (açık kaynaklı) otomatik bir test çerçevesidir. Gibi birden fazla programlama dilini kullanabilirsiniz. Java, C#, Pythonvb. oluşturmak için Selenium Komut Dosyalarını Test Edin. kullanılarak yapılan testler Selenium test aracına genellikle şu ad verilir: Selenium Test yapmak.

Uzman Görüşleri

"Testlerinizde sabit uyku gecikmeleri kullanmaktan kaçının. Bunun yerine, öğelerin yüklenmesini beklemek için açık beklemeler (WebDriverWait gibi) kullanın. Bu, betiklerinizi daha güvenilir ve daha hızlı hale getirir, çünkü gerçek sayfa koşullarına dinamik olarak yanıt verirler; her yerdeki öğrenciler için temel bir en iyi uygulama, Selenium".

— Himanşu Şeth, Selenium Expert

👉 Ücretsiz Canlı Kayıt Olun Selenium Test Projesi

Selenium Araç Takımı

Selenium Yazılım yalnızca tek bir araç değil, her bir parçası farklı ihtiyaçlara hitap eden bir yazılım paketidir. Selenium Bir kuruluşun QA test ihtiyaçları. İşte araçların listesi

  • Selenium Entegre Geliştirme Ortamı (IDE)
  • Selenium Uzaktan Kumanda (RC)
  • Web Sürücüsü
  • Selenium Grid

Selenium Araç Takımı

Şu anda, Selenium RC ve WebDriver tek bir çerçevede birleştirilir ve Selenium 2. Selenium Bu arada 1, şunu ifade ediyor Selenium RC.

Video öğretici Selenium

Tıkla okuyun videoya erişilemiyorsa

kim geliştirdi Selenium?

Dan beri Selenium farklı araçlardan oluşan bir koleksiyondur ve aynı zamanda farklı geliştiricilere de sahiptir. Aşağıda, kayda değer katkılarda bulunan kilit kişiler yer almaktadır. Selenium Proje

Gelişmiş Selenium

Öncelikle, Selenium oldu Jason Huggins tarafından 2004'te yaratıldıThoughtWorks'te bir mühendis olarak, sık sık test gerektiren bir web uygulaması üzerinde çalışıyordu. Uygulamalarının tekrarlayan Manuel Testlerinin giderek verimsizleştiğini fark edince, bir JavaSenaryo Tarayıcının eylemlerini otomatik olarak kontrol edecek bir program tasarladı. Bu programa "JavaScriptTestRunner.”

Bu fikirdeki diğer web uygulamalarının otomatikleştirilmesine yardımcı olma potansiyelini görerek şunları yaptı: JavaDaha sonra adı ScriptRunner olarak değiştirilen açık kaynaklı bir yazılımdır Selenium çekirdek. Web uygulaması testi için diğer seçenekleri keşfetmek isteyenler için bunlara bir göz atın Selenium alternatifleri.

Aynı Menşe Politikası Sorunu

Aynı Menşe politikası yasaklıyor JavaBaşlatıldığı alandan farklı bir alandaki öğelere erişen komut dosyası kodu. Örneğin, www.google.com'daki HTML kodu bir Java"randomScript.js" betik programı. Aynı kaynak politikası, randomScript.js'nin yalnızca google.com/mail, google.com/login veya google.com/signup gibi google.com içindeki sayfalara erişmesine izin verecektir. Ancak, farklı alan adlarına ait oldukları için yahoo.com/search veya guru99.com gibi farklı sitelerdeki sayfalara erişemez.

Aynı Menşe Politikası Sorunu

Bu nedenle, daha önce Selenium RC, test uzmanlarının her ikisinin de yerel kopyalarını yüklemesi gerekiyordu Selenium Çekirdek (bir Java(Komut dosyası programı) ve test edilen web uygulamasını içeren web sunucusu, bu nedenle aynı etki alanına ait olacaklardır

Doğum Selenium Uzaktan kumanda (Selenium RC)

Paul Hammant

Ne yazık ki, test kullanıcıları Selenium Core, test edilen uygulamanın tamamını ve web sunucusunu, uygulamanın getirdiği kısıtlamalar nedeniyle kendi yerel bilgisayarlarına kurmak zorunda kaldı. aynı menşe politikasıYani ThoughtWorks'ün bir başka mühendisi, Paul Hammant, tarayıcıyı buna inandırmak için HTTP proxy işlevi görecek bir sunucu oluşturmaya karar verdi Selenium Çekirdek ve test edilen web uygulaması aynı etki alanından geliyor. Bu sistem olarak bilinmeye başlandı. Selenium Uzaktan Yönetim or Selenium 1.

Doğum Selenium Grid

Patrick Işık Bedeni

Selenium Grid tarafından geliştirildi Patrick Işık Bedeni Test yürütme sürelerini mümkün olduğunca en aza indirme ihtiyacını karşılamak için. Başlangıçta sisteme “Barındırılan QA.” Önemli aşamalarda tarayıcı ekran görüntüleri yakalama yeteneğine sahipti ve ayrıca göndermek Selenium farklı makinelere aynı anda komut gönderebilme.

Doğum Selenium IDE

Shinya Kasatani

Shinya Kasatani Japonya'nın yarattığı Selenium IDE, Firefox ve kayıt ve oynatma özelliğiyle tarayıcıyı otomatikleştirebilen bir Chrome uzantısı. Bu fikri, test vakaları oluşturma hızını daha da artırmak için buldu. Bağışladı Selenium IDE'ye Selenium Proje 2006.

WebDriver'ın Doğuşu

Simon Stewart

Simon Stewart yaklaşık olarak WebDriver'ı oluşturdu 2006 tarayıcılar ve web uygulamaları daha güçlü ve daha kısıtlayıcı hale geldiğinde JavaKomut dosyaları gibi programlar Selenium Çekirdek. Tarayıcıyı işletim sistemi düzeyinde kontrol edebilen ilk çapraz platform test çerçevesiydi.

Doğum Selenium 2

In 2008, Bütün Selenium Ekip WebDriver'ı birleştirmeye karar verdi ve Selenium RC, daha güçlü bir araç oluşturmak için Selenium 2Ile WebDriver çekirdektir. Şu anda, Selenium RC hala geliştirilme aşamasında, ancak yalnızca bakım modunda. Çoğu Selenium Projenin çabaları artık şuna odaklanıyor: Selenium 2.

Peki Neden İsim Selenium?

İsim Selenium Jason'ın bir kez ekibine yaptığı bir şakadan geldi. Sırasında Seleniumgelişimi, başka bir otomatik test çerçeve, popüler olarak şu şirket tarafından yapılmıştır: Mercury interaktif (Evet, HP tarafından satın alınmadan önce QTP'yi üreten şirket). Selenium için iyi bilinen bir panzehirdir. Mercury Zehirlenmenin ardından Jason ve takım arkadaşlarının bu ismi aldığını öne sürdü. Bu çerçeveyi bugüne kadar bu şekilde adlandırmamız gerekiyordu.

Neden İsim Selenium

Nedir? Selenium IDE?

Selenium Entegre Geliştirme Ortamı (IDE), en basit çerçeve içinde Selenium süit ve öğrenmesi en kolay olanı. It is a Chrome ve Firefox fişe takmak diğer eklentilerle mümkün olduğu kadar kolay bir şekilde kurabilirsiniz. Ancak basitliği nedeniyle Selenium IDE yalnızca bir prototip oluşturma aracı. Daha gelişmiş test senaryoları oluşturmak istiyorsanız aşağıdakilerden birini kullanmanız gerekir: Selenium RC veya Web Sürücüsü.

Selenium IDE

Nedir? Selenium Uzaktan kumanda (Selenium RC)?

Selenium RC şuydu amiral gemisi test çerçevesi bütün Selenium uzun süredir proje. Bu ilk otomatik web testi araç kullanıcıların tercih ettikleri bir programlama dilini kullanmalarına olanak tanır2.25.0 sürümünden itibaren RC aşağıdaki programlama dillerini destekleyebilir:

Selenium Uzaktan kumanda (Selenium RC)

Web Sürücüsü nedir?

WebDriver'ın daha iyi olduğunu kanıtlıyor Selenium IDE ve Selenium RC birçok açıdan. Tarayıcının eylemlerini otomatikleştirmede daha modern ve istikrarlı bir yaklaşım uygular. WebDriver'ın aksine Selenium RC'ye güvenilmez JavaKomut dosyası Selenium Otomasyon Testi. Doğrudan iletişim kurarak tarayıcıyı kontrol eder.

Desteklenen diller şuradakilerle aynıdır: Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Yakut

Web sürücüsü

Nedir? Selenium Kafes?

Selenium Izgara bir araçtır ile birlikte kullanılır Selenium Çalıştırılacak RC paralel testler farklı makinelerde ve farklı tarayıcılarda aynı anda. Paralel yürütme, aynı anda birden fazla testin çalıştırılması anlamına gelir.

Özellikler:

  • sağlayan testlerin eş zamanlı çalıştırılması in birden fazla tarayıcı ve ortam.
  • Zamandan tasarruf muazzam.
  • kullanır hub ve düğümler kavram. Hub, merkezi bir veri kaynağı görevi görür. Selenium kendisine bağlı her düğüme komutlar verir.

Selenium Tarayıcı ve Ortam Desteği

Mimari farklılıkları nedeniyle, Selenium SDI, Selenium RC ve WebDriver farklı tarayıcı gruplarını ve işletim ortamlarını destekler.

  Selenium IDE Web Sürücüsü
tarayıcı Desteği mozilla Firefox ve Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ ve Edge
Safari,
HtmlUnit ve PhantomUnit
OperaZamanlama Sistemi Windows, Mac OS X, Linux Yukarıdaki tarayıcıların çalışabildiği tüm işletim sistemleri.

Not: Opera Sürücü artık çalışmıyor

Doğru Nasıl Seçilir Selenium İhtiyaçlarınız İçin Araç

araç Neden seçtin?
Selenium IDE
  • Otomatik test kavramları hakkında bilgi edinmek ve SeleniumDahil olmak üzere:
  • Type, open, clickAndWait, iddia, doğrulama vb. gibi Selenese komutları.
  • Kimlik, ad, xpath, css seçici vb. gibi konum belirleyiciler.
  • Özelleştirilmiş yürütme JavarunScript kullanarak betik kodu
  • Test senaryolarını çeşitli formatlarda dışa aktarma.
  • Programlama konusunda çok az ön bilgiye sahip veya hiç bilgi sahibi olmayan testler oluşturmak.
  • Daha sonra RC veya WebDriver'a aktarabileceğiniz basit test durumları ve test takımları oluşturmak.
  • Bir web uygulamasını test etmek için Firefox ve yalnızca Chrome.
Selenium RC
  • Selenese'den daha anlamlı bir dil kullanarak bir test tasarlamak
  • Testinizi farklı işletim sistemlerindeki farklı tarayıcılarda (HtmlUnit hariç) çalıştırmak için.
  • Testlerinizi birden fazla ortama dağıtmak için Selenium Kafes.
  • Uygulamanızı destekleyen yeni bir tarayıcıda test etmek için JavaSenaryo.
  • Karmaşık AJAX tabanlı senaryolarla web uygulamalarını test etmek.
Web Sürücüsü
  • Test senaryonuzu tasarlarken belirli bir programlama dilini kullanmak.
  • AJAX tabanlı işlevler açısından zengin uygulamaları test etmek.
  • HtmlUnit tarayıcısında testler yürütmek için.
  • Özelleştirilmiş test sonuçları oluşturmak için.
Selenium Grid
  • Çalıştırmak için Selenium RC scriptleri birden fazla tarayıcıda ve işletim sisteminde aynı anda çalışır.
  • Mümkün olan en kısa sürede tamamlanması gereken büyük bir test paketini çalıştırmak.

Gerçek Dünya Vaka Çalışmaları

🔍 Vaka Çalışması 1: SaaS Pano için Tarayıcılar Arası Uyumluluk

senaryo

Yazılım hizmeti sunan bir şirket, modern tarayıcılarda (Chrome, Chrome, vb.) tutarlı bir şekilde çalışması gereken bir analiz panosu yayınlamaya hazırlanıyordu. Firefox, Kenar, Safari).

Zorluklar

Her tarayıcıda manuel test yapmak zaman alıcıydı, hataya açıktı ve hızlı geliştirme yinelemelerine ayak uyduramıyordu.

ile çözüm Selenium

Bir QA mühendisi bir Selenium Grid Aynı test paketini birden fazla tarayıcı ve işletim sistemi kombinasyonunda aynı anda yürütmek üzere kurulum. Testler şu şekilde yazılmıştır: Python kullanma Selenium Giriş, grafik filtreleme ve veri aktarımı gibi eylemler için WebDriver.

Sonuç

  • Gerileme süresi %80 oranında azaltıldı.
  • Tarayıcıya özgü oluşturma hataları erken keşfedildi (örneğin, IE'deki yanlış hizalanmış grafikler).
  • Ekstra manuel döngüler olmadan tarayıcı matrisinde tutarlı bir gösterge paneli kullanıcı deneyimi sağlandı.

⚙️ Vaka Çalışması 2: Web Uygulaması için CI/CD Entegrasyonu Selenium + TestNG

senaryo

Orta ölçekli bir web geliştirme firması Jenkins kullanan bir CI/CD hattına güveniyor. Her kod değişikliğinden sonra çekirdek kullanıcı yolculuklarının çalıştığından emin olmaları gerekiyordu.

Zorluklar

Yeni sürüm dağıtımları zaman zaman kullanıcı akışlarını (oturum açma, form gönderme) bozuyor ve gün sonunda manuel teste kadar tespit edilemiyordu.

ile çözüm Selenium

Bir testçi bir Javatabanlı Selenium WebDriver paketi entegre edildi TestNG. Testler kimlik doğrulama, profil güncellemeleri ve arama işlevlerini kapsıyordu. Bunlar her Jenkins derlemesinde çalıştı, paralel yürütme ve tarayıcı parametrelendirmesinden yararlandı.

Sonuç

  • Hızlı geri bildirim sağlandı: bozulan akışlar hemen işaretlendi.
  • Dağıtım sonrası hatalar %60'ın üzerinde azaltıldı.
  • Geliştiricilerin QA'ya ulaşmadan önce sorunları çözmelerini sağladı.

🚀 Vaka Çalışması 3: Seyahat Toplayıcısı için Özellik Yayınlamanın Hızlandırılması

senaryo

Bir seyahat toplayıcı platformunun yenilenmiş bir uçuş rezervasyonu özelliğini yayınlaması gerekiyordu. 10+ sayfadaki manuel regresyon testleri günler sürdü ve yayınlanması engellendi.

Zorluklar

Piyasaya sürme süresini kısaltma baskısı, manuel test döngülerinin önüne geçemezdi; bu da gecikmelere veya daha düşük kaliteye yol açabilirdi.

ile çözüm Selenium & Sayfa Nesne Modeli

Bir QA otomasyon sorumlusu C# dilinde bir Sayfa Nesne Modeli (POM) yapısını tanıttı. Selenium WebDriver betikleri, sayfa öğelerini ve eylemlerini (uçuş arama, filtre uygulama ve ödeme durumları) kapsülledi. Otomatik test çalıştırmaları, GitLab CI'da her gece tetiklendi.

Sonuç

  • Test süresi 3 günden 4 saate düştü.
  • Birden fazla özellikte komut dosyasının yeniden kullanılması, komut dosyası yazma çabasını %50 oranında azalttı.
  • Güven arttı: Sürüm, en az hata raporuyla zamanında yayınlandı.

ortak Selenium Zorluklar (ve Çözümler)

Rağmen Selenium Güçlü olmasına rağmen, test uzmanları genellikle güvenilirliği ve hızı etkileyebilecek zorluklarla karşılaşır. İşte yaygın olanlardan bazıları ve bunların nasıl çözüleceği:

  1. Kararsız Testler:
    Zamanlama veya ağ sorunları nedeniyle testler rastgele başarısız olabilir.
    Fix: Açık beklemeleri ve istikrarlı konum belirleyicileri kullanın; kaçının Thread.sleep().
  2. Dinamik Web Öğeleri:
    Eleman ID'lerini veya XPath'lerini değiştirmek eleman bulunamadı hatalarına neden olur.
    Fix: Bağıl XPath'leri, CSS seçicilerini veya dinamik öznitelik işlemeyi kullanın.
  3. Synchronizasyon Sorunları:
    Öğeler betik yürütülmesinden daha yavaş yüklenir.
    Fix: Beklenen koşullarla WebDriverWait'i uygulayın.
  4. Tarayıcılar Arası Tutarsızlıklar:
    Testler Chrome'da farklı davranıyor, Firefoxveya Edge'i seçin.
    Fix: Testleri çalıştırın Selenium Tarayıcılar arası doğrulama için grid veya bulut platformları.
  5. Açılır Pencereleri ve Uyarıları Yönetme:
    Beklenmeyen açılır pencereler test akışını kesintiye uğratabilir.
    Fix: Kullanım Selenium'nin Uyarı arayüzünü veya try-catch bloklarını kullanarak bunları zarif bir şekilde yönetin.
  6. Test Bakım Giderleri:
    Sık sık yapılan kullanıcı arayüzü değişiklikleri testleri kırılgan hale getirir.
    Fix: Kolay güncellemeler için Sayfa Nesne Modeli'ni (POM) ve sürüm kontrolünü benimseyin.
  7. Entegrasyon Zorlukları:
    CI/CD boru hatları sürücü sorunları nedeniyle başarısız olabilir.
    Fix: Kullanım Selenium Müdür (Selenium 4+) veya WebDriver Manager'ı kullanarak sürücüleri otomatik olarak yönetin.

Kısacası: köprü Selenium Sorunlar, zayıf senkronizasyondan veya kırılgan konumlayıcılardan kaynaklanır; her ikisi de daha akıllı beklemeler, modüler tasarım ve sürekli bakımla çözülebilir.

SSS:

Selenium Web uygulamalarını farklı tarayıcılar ve platformlarda test etmek için kullanılan açık kaynaklı bir otomasyon çerçevesidir. Test uzmanlarının tıklama, form gönderimi ve gezinme gibi kullanıcı etkileşimlerini çeşitli programlama dilleri kullanarak simüle etmelerine olanak tanır.

Selenium Öncelikle tarayıcı tabanlı testlerin otomatikleştirilmesi için kullanılır. Web uygulamalarının tarayıcılar arasında doğru şekilde çalışmasını sağlar, regresyon ve işlevsel testleri destekler ve sürekli test için CI/CD kanallarıyla kolayca entegre olur.

Selenium dört ana bileşenden oluşur: Selenium IDE (kayıt/oynatma aracı), Selenium RC (Kaldırıldı), Selenium Web Sürücüsü (modern otomasyon API'si) ve Selenium Grid (paralel, tarayıcılar arası test yürütme için).

Dört tür: Selenium IDE testleri kaydetmek için Selenium RC eski otomasyon için Selenium Web Sürücüsü doğrudan tarayıcı kontrolü için ve Selenium Grid birden fazla tarayıcıda dağıtılmış, paralel testler için.

Selenium WebDriver, yerel API'leri kullanarak tarayıcılarla doğrudan etkileşim kuran temel bileşendir. Geliştiricilerin, aşağıdaki gibi dillerde güçlü, tarayıcılar arası otomasyon betikleri yazmalarını sağlar: Java, Pythonve C#'a güvenmeden JavaSenaryo.

Selenium IDE başlangıç ​​seviyesindeki kullanıcılara uygundur ve tarayıcı eklentileri aracılığıyla kayıt ve oynatma işlevi sunar. Web SürücüsüÖte yandan, kod tabanlıdır, birden fazla dili destekler ve gerçek dünya test çerçevelerine uygun gelişmiş, ölçeklenebilir tarayıcı otomasyonu sağlar.

Bu yazıyı şu şekilde özetleyin: