
Bu bölümde HTML (Hyper Text Markup Language) temelleri, Attributte, CSS Value, Bootsrap vb. temel düzeyde bilgiler edineceğiz. Amacımız bir web developer olmak değil yalnızca Selenium WebDriver da ihtiyaç duyacağımız özelliklerin çalışma prensibi hakkında biraz fikir sahibi olmak.
Selenium Web Driver Nedir? Kurulumu ve proje oluşturulması. CSS taglerinin web uygulamasında görüntülenmesi ve locator tespiti. Web driver bağlantılarının yapılandırılarak ilk testin çalıştırılması.
XPATH konusunun detaylı anlatımı.
XPATH ile jotform sitesine bulunan form elemanlarını bularak test senaryomuzda form elemanları içerisine bilgileri giriyoruz ve test senaryomuzu çalıştırıyoruz. Projemizin versiyon kontrolünü yapabilmek için Github bağlantısını gerçekleştiriyoruz.
try - cathc yapısını kurmayı ve testlerimizde hata kontrolü yapmayı öğreniyoruz. Liste halinde web elementleri bulma ve bir liste içerisine kaydederek sonrasında testlerimizde kullanmayı öğreniyoruz.
Web elementlerden linktext ile devam ediyoruz. Sonrasında da CSS selector konusunu öğreniyoruz. XPATH ve CSS Selector arasındaki farklılıkları öğreniyoruz.
Driver özelliklerimizi farklı test class'larımız içerisinde kullanabilmek için bir BaseDriver class oluşturup istediğimiz özellikleri bu class içerisinde veriyoruz. Sonrasında bu class'ı test class'larımız içerisinde çağırmayı öğreniyoruz. Döngü ile tekrarlı elementlerin özelliklerini almayı öğreniyoruz. Web sayfaları arasında testlerimizde nasıl geçiş yapacağımızı öğreniyoruz. Web Elementlerin CSS Value'larını almayı öğreniyoruz.
Assertion nedir ve nasıl kullanılır? JUnit ile test class oluşturma ve annotations konusuna giriş yapıyoruz.
Select web elementinin altında tanımlı olan seçenekleri test içerisinde nasıl kullanacağımızı göreceğiz.
Action class nedir ve ne işe yarar, nasıl kullanılır? Action içerisinde tanımlı fonksiyonlarını kullanmayı görüyoruz. Double click, Right click, Drag and Drop, Drag and Drop By kullanımlarını deniyoruz.
CSS Value özelliklerini koşul olarak kullanan Assertion ekleyerek action metodlarımızı test ediyoruz. Örnek testler ile konuyu derinlemesine öğreniyoruz.
Action içerisinde hover metodunu kullanmayı öğrenerek konumuza devam ediyoruz.
Action class içerisinde tanımlı olan fonksiyonlara devam ediyoruz. Bu derste klavye tuş hareketlerini test içerisinde action class ile nasıl kullanacağımızı göreceğiz. Alert işlemlerini ve sayfalarda gelen alertler üzerinde nasıl işlemler gerçekleştirebileceğimizi öğreniyoruz.
Testlerimizde wait nasıl kullanılıyor ve ne işe yarıyor? Web Driver Wait kavramını öğrenip örnekler ile pekiştiriyoruz. Explicit wait kavramını öğreniyoruz.
IFrame yapısını öğreniyoruz. Frame'ler arası geçişleri öğreniyor ve daha önce gördüğümüz bilgiler ile birleştirerek kullanarak bilgilerimizi pekiştiriyoruz.
Scroll işlemlerini görüyoruz. Bir sayfayı yukarı aşağı kaydırma işlemleri, belirli bir noktaya sayfayı götürme işlemleri nasıl yapılıyor bunu görüyoruz. Ayrıca Java Script Executor ile direkt java elementlerini yakalayarak işlem yapmayı ve testlerimizde bizi engelleyen herhangi bir pop-up vb. var ise bu engelden kurtulmayı öğrenmiş oluyoruz.
Window işlemlerini göreceğiz ve bir sayfadan diğerine geçiş yapma, sayfayı kapatma vb. işlemleri göreceğiz.
Robot class nedir ve ne işe yarar? Robot class içerisinde bulunan hazır metodları kullanıyoruz. Bu konuda dikkatli dinlemenizi rica ediyorum çünkü hatalı bir komut yürütürseniz bilgisayarınızı hard reset yapmak zorunda kalabilirsiniz.
ScreenShot ile testlerimizde tespit ettiğimiz bug'lar için ekran kaydı almayı göreceğiz.
Selenium Web Driver dersimizin son konusu olarak açtığımız test penceresinin yeniden boyutlandırılmasını görüyoruz. İstediğimiz bir pixel en x boy oranına ayarlayarak window içerisinde testlerimizi gerçekleştiriyoruz.
TestNG kütüphanesinin kurulumunu gerçekleştiriyoruz. İlk test class'ımızı oluşturup içerisine testlerimizi yazıyoruz. Test sıralaması nasıl yapılır, test önceliklendirmesi nedir bu konuları öğreniyoruz. Priority ve Before class, Before Method, After Method ve After Class özeliklerini öğreniyoruz.
Fonksiyonlarımızı ortak kullanabileceğimiz bir class oluşturuyoruz ve testlerimizde kullanacağımız metodları bu class içerisine yazmaya başlıyoruz.
BeforeClass ve AfterClass konusunu detaylandırıyoruz. AssertEquals özelliğini görüyoruz.
Assertions tiplerini detaylı olarak öğreniyoruz.
Dependency oluşturarak testlerimizin belirli bir bağımlılık ile koşulmasını ve ön koşullara göre tamamlanmasını sağlayacağız.
Kampsamlı bir örnek test çalışması ile daha önce görmüş olduğumuz konuları pekiştireceğiz.
Kampsamlı bir örnek test çalışması ile daha önce görmüş olduğumuz konuları pekiştireceğiz. (Örnek çalışmasının devamı)
TestNG için XML dosyası oluşturmayı öğreniyoruz.
XML dosyası kullanarak birden fazla test senaryomuzu çalıştırmayı ve diğer kullanabileceğimiz detay özelliklerini öğreneceğiz.
XML dosyası içerisinden testlerimize parametre göndermeyi öğreneceğiz.
Data Provider konusunu öğreniyoruz.
Hard assert ve Soft assert kavramlarını öğreniyoruz.
Kapsamlı bir örnek üzerinden daha önce gördüğümüz konuları pekiştiriyoruz.
Page Object Model nedir ve nasıl bir yapı ile kurgulanır bunu öğreniyoruz. Örnek testimizi POM ile oluşturuyoruz.
Bir önceki derste yapmış olduğumuz testi bu sefer XML ile oluşturuyor olacağız.
Son dersimizde öğrendiklerimize genel bir bakış atıyoruz.
Cucumber kurulumu ve kütüphane yüklemesini pom.xml dosyası üzerinden yapmayı öğreneceğiz. Cucumber eklentisini yükleyeceğiz ve sonrasında ise Given When Then yapısını öğreneceğiz.
Testlerimizde kullanmak üzere bir Genel Web Driver class oluşturup içerisine driver özelliklerimizi tanımlıyoruz.
Hooks class içerisine driver.quit metodumuzu tanımlayarak kullanıma alıyoruz. Parent class oluşturup kullanacağımız metodları bu class içerisinde tanımlıyoruz ve test class'larımızda bu class'ı extend edip metodları ortak bir class içerisinden yönetmeyi öğreniyoruz.
Örnek bir senaryo ile öğrendiklerimizi pekiştiriyoruz.
Her senaryo öncesi çalışması gereken işlemleri Background ile nasıl yapılandıracağımızı öğreniyoruz. Feature içerisinden testimize parametre göndermeyi öğreniyoruz.
Data Table yapısını ve nasıl kullanıldığını öğreniyoruz.
Tek boyutlu Data Table yapısını gördük şimdi çok boyutlu data table ile senaryomuz içerisinden parametre göndererek senaryolarımızı tüm yolladığımız parametreler ile kullanabilmeyi öğreniyoruz.
DataTable örneği ile daha önce öğrendiklerimizi pekiştiriyoruz.
Switch-Case yapısı ile web elementlerden istediğimizi senaryo içerisinde çağırmayı ve kullanmayı öğreniyoruz.
POM yapısına yeni senaryomuzda gereken sayfaları ekliyoruz.
Kapsamlı bir örnek ile daha önce öğrendiklerimizi pekiştiriyoruz.
Scenario Outline konusunu öğreniyoruz. Bu sayede senaryolarımızı birden fazla kez farklı parametreler ile çalıştırmış olacağız.
Senaryolarımızda kullanabileceğimiz random string veya numeric değer üretmek için kullanabileceğimiz kütüphaneyi kurarak kullanmayı öğreniyoruz.
Cucumber içerisinde testlerimize options eklemeyi öğreneceğiz. Options seçeneklerinden en yaygın olarak kullanılanları göreceğiz. TestNG raporu oluşturmayı göreceğiz. Bu raporumuza screen shot ilave etmeyi öğreneceğiz.
TestNG raporumuzu yapılandırmaya devam ediyoruz.
Thread Driver yapısını öğreniyoruz.
2 Boyutlu Array nedir ve nasıl oluşturulur? Apache POI kütüphanesi yüklenmesi ve kullanım alanı öğreniyor olacağız.
Var olan bir Excel dosyası içerisinden bilgileri çekmeyi göreceğiz.
Input Stream ile Excel içerisine veri gönderme işlemlerini öğreniyoruz.
Excel dosyası oluşturma, excel dosyasına veri yazma, excel dosyası içerisinden veri çekme ve alınan verileri senaryolarda kullanma adımlarını görüyoruz.
CI/CD süreçlerini Jenkins ile bir pipeline oluşturup buradan yönetmeyi öğreniyoruz. Jenkins içerisinde Smoke Test, Regession Test gibi testler tanımlıyoruz. Test repository'mizi Github üzerinden Jenkins içerisine göndermeyi ve kodlarımızı her güncellediğimizde Jenkins'in bizim yerimize testlerimizi otomatik olarak çalıştırmasını ve bize sonuçları mail ile raporlamasını sağlıyoruz.
Proje yönetim toollarından Jira'yı kullanmayı öğreniyoruz. Jira, yazılım firmalarında proje süreçlerinin yönetildiği, proje iş paketlerinin aşamalarının takibinin yapıldığı bir proje yönetim aracı. Detaylı olarak Jira ve içerisinde testlerimizde kullanacağımız Zephy Scale eklentisinin nasıl kullanıldığını öğreniyoruz.
Zephyr scale'in rapor özelliğini nasıl kullanacağımızı ve manuel testlerde raporlarımızı nasıl oluşturacağımızı öğreniyoruz.
Bu ders kapsamında piyasada soft skills diye adlandırılan bazı bilgi ve becerileri kazanacağız. Bu ders kapsamında Test türleri, proje yönetim modelleri ve aralarında ne gibi farklar olduğu, yazılım yaşam döngüsü ve test yaşam döngüsü aşamaları nelerdir, Scrum nedir, Sprint nedir gibi genel kültür konularına değiniyor olacağız.
Web ve mobil uygulamalarında en yaygın kullanılan Selenium WebDriver ve ona bağlı olarak testNG ve Cucumber kullanımlarını öğreneceğimiz kursumuza hoş geldiniz. Bu kurs içeriği sayesinde sıfır durumundan kendi otomasyon test repository'nizi oluşturabilir hale geleceksiniz. Yazılım test mühendisliğinin temellerini bu kurs sayesinde öğrenecek ve piyasa koşullarına hazır hale geleceksiniz.
Öğreneceğimiz konular:
Selenium WebDriver,
TestNG,
Cucumber ve Gherkin dil kullanımı,
Yazılım yaşam döngüsü (SDLC), Test yaşam döngüsü (STLC), Test Çeşitleri (White Box, Black Box, etc.)
Bir SDET/QA uzmanının sorumluluk alanı,
CI/CD tool olarak Jenkins kullanımı,
Github temel kullanımı,
Agile proje yönetim modeli temelleri,
Jira proje yönetim uygulaması kullanımı,
Jira testing plugins olan Zephyr Scale kullanımı,
Bu kurs kapsamı içerisinde bir yazılım projesine baştan sona test repository'si hazırlayabileceksiniz. Agile proje yönetim metodolojisini ve bir projenin bu yöntem ile nasıl geliştirildiğinin temellerini kurs içeriğimizde öğreneceksiniz. Aynı zamanda bir yazılım test mühendisi olarak ihtiyacınız olacak yardımcı toolları da bu kurs içeriği sayesinde öğrenmiş olacaksınız. CI/CD süreçleri içerisinde en çok kulllanılan Jenkins içerisinde projeniz için testler oluşturarak rapor süreçlerinin yönetilmesini öğreneceksiniz. Kurs içerisinde size verilen ödevleri ve çözümlerini dikkatle çalışmanız, dersleri dikkatle izlemeniz ve tekrar tekrar kendinize ödevler oluşturarak tekrarlar gerçekleştirmeniz ile birlikte yazılım test uzmanı kariyerinizde fazlasıyla yeterli olacak tüm bilgi ve donanıma sahip olacaksınız.
Ders Müfredatı:
HTML Temelleri
CSS
Selenium Konuları:
Locators
Base Driver
Selectors: Xpath, CSS Selector
Action Class
Wait
iframes
javascript executor
Robot Class
TestNG Konuları:
XML Files
Method, Class: Groups - Parameter
Data Provider
Cross Browser Testing
Parallel Testing
Hard Assert and Soft Assert
Page Object Model
Cucumber Konuları:
Framework Hazırlığı
Scenario
Parameter
Scenario Outline
Datatable
Runner Class
Extend Reports
Parallel Testing
Cross Browser Testing
Apache POI ile Excel işlemleri
Jenkins ile CI/CD pipelining kurulumu
Smoke ve Regression Test kurulumu
Jira proje yönetim aracı kullanımı
Jira Zephyr Scale ile test işlemleri ve raporlamalar
Agile proje yönetim yapısı ve detayları