how use testng framework
Son birkaç öğreticide, temel ve yaygın olarak kullanılan WebDriver komutlarına ışık tuttuk. Ayrıca UI öğelerinin konumlandırma stratejilerini ve bunların test komut dosyalarına dahil edilmesini öğrendik. Bu nedenle, biz de kendi ilk WebDriver Otomasyon Test Komut Dosyası .
Bu eğitimle devam ederken, TestNG, özellikleri ve uygulamaları hakkında her şeyi tartışacağız.
TestNG gelişmiş bir çerçevedir hem geliştiriciler hem de test ediciler tarafından avantajlardan yararlanacak şekilde tasarlanmıştır. JUnit'i zaten kullanan kişiler için TestNG, bazı gelişmiş özelliklerle farklı görünmeyecektir. Çerçevelerin başlamasıyla birlikte, JUnit muazzam bir Java uygulamalarında, Java geliştiricilerinde ve Java test edicilerinde kod kalitesini önemli ölçüde artıran popülerlik.
Ayrıca bakınız=> JUnit Tutorial ve Selenium betiklerinde kullanımı
Kullanımı kolay ve anlaşılır bir çerçeve olmasına rağmen, JUnit'in getirme ihtiyacını ortaya çıkaran kendi sınırlamaları vardır. TestNG resmin içine. TestNG, 'Cedric Beust' adında beğenilen bir programcı tarafından oluşturuldu. TestNG, Apache Yazılım Lisansı altında dağıtılan ve indirilmeye hazır olan açık kaynaklı bir çerçevedir.
TestNG'yi WebDriver ile birlikte sunma ihtiyacımız hakkında konuşmak, ürünün / uygulamanın sağlığına bir göz atmak için paydaşlarla paylaşılabilen ve böylece WebDriver'ın üretme yetersizliğinin dezavantajını ortadan kaldıran verimli ve etkili bir test sonucu formatı sağlamasıdır. test raporları. TestNG, programın beklenmedik şekilde sonlandırılmadan çalışmasını sağlayan dahili bir istisna işleme mekanizmasına sahiptir.
Hem TestNG hem de JUnit, TestNG'nin JUnit'e genişletilmiş bir sürüm olduğu ve mevcut test döneminde daha yaygın olarak kullanıldığı aynı Birim Çerçeveleri ailesine aittir.
Ne öğreneceksin:
- TestNG'nin Özellikleri
- Eclipse'de TestNG Kurulumu
- Örnek TestNG Projesi Oluşturulması
- TestNG Sınıfı Oluşturma
- TestNG Komut Dosyasını Yürütme
- HTML Raporları
- TestNG'de Öncelik Belirleme
- Kod İzlenecek Yol
- TestNG Ek Açıklamaları
- Sonuç
- Önerilen Kaynaklar
TestNG'nin Özellikleri
- Ek açıklamalar için destek
- Parametrelendirme desteği
- Test paketlerinin oluşturulmasını gerektirmeyen gelişmiş yürütme metodolojisi
- Veri sağlayıcıları kullanarak Veriye Dayalı Test Desteği
- Kullanıcının test yöntemleri için yürütme önceliklerini belirlemesini sağlar
- Birden çok iş parçacığı çalıştırılırken tehdit korumalı ortamı destekler
- Derleme araçları (Ant, Maven vb.), Entegre Geliştirme Ortamı (Eclipse) gibi çeşitli araçlar ve eklentilerle entegrasyonu kolayca destekler.
- ReportNG kullanarak etkili Rapor Oluşturma araçlarıyla kullanıcıyı kolaylaştırır
TestNG'yi JUnit'ten üstün kılan çeşitli avantajları vardır. Onlardan bazıları:
- Gelişmiş ve kolay ek açıklamalar
- Yürütme kalıpları ayarlanabilir
- Test komut dosyalarının eşzamanlı yürütülmesi
- Test durumu bağımlılıkları ayarlanabilir
Hem TestNG hem de JUnit'te ek açıklamaların önünde '@' simgesi bulunur.
Şimdi kurulum ve uygulama kısmına geçelim.
Selenyum Test Otomasyonu için Online Grid
# 1) LambdaTest
TestNG çerçevesi en iyi şekilde LambdaTest gibi bir bulut Selenium Grid ile kullanılır; bu, şirket içi bir Selenium Grid'i sürdürme sıkıntısı olmadan 2000'den fazla gerçek tarayıcı ve işletim sistemi üzerinde paralel test gerçekleştirmenize yardımcı olur.
Hata ayıklama için Selenium test betiğinizin tam video kaydının yanı sıra komut günlükleri, ağ günlükleri, ham Selenium günlükleri, meta veriler vb. Gibi çeşitli günlükler alabilirsiniz.
LambdaTest ayrıca sürekli test için Jenkins, Travis CI, CircleCI vb. Gibi birden fazla CI / CD aracı ile entegrasyonlar sunar. LambdaTest ayrıca, kolay hata günlüğü kaydı için çok sayıda proje yönetimi aracıyla entegre olmanıza olanak tanır.
=> LambdaTest Web sitesini ziyaret edinEclipse'de TestNG Kurulumu
Tutulma üzerinde TestNG İndirmeyi ve yüklemeyi Test etmek için aşağıdaki adımları izleyin:
Aşama 1: Eclipse IDE'yi başlatın -> Menüdeki Yardım seçeneğine tıklayın -> Açılır menüden 'Eclipse Marketplace ..' seçeneğini seçin.
Adım 2: Arama metin kutusuna 'TestNG' anahtar kelimesini girin ve aşağıda gösterildiği gibi 'Git' düğmesine tıklayın.
Aşama 3: Kullanıcı 'Git' düğmesini tıklar tıklamaz, arama dizesiyle eşleşen sonuçlar görüntülenecektir. Artık kullanıcı, TestNG'yi yüklemek için Yükle düğmesine tıklayabilir.
4. adım: Kullanıcı Yükle düğmesine tıklar tıklamaz, kullanıcıdan kurulumu onaylaması için bir pencere istenir. 'Onayla' düğmesine tıklayın.
Adım 5: Bir sonraki adımda, uygulama sizden lisansı kabul etmenizi ve ardından 'Bitir' düğmesini tıklamanızı isteyecektir.
6. Adım: Kurulum şimdi başlatıldı ve ilerleme şu şekilde görülebilir:
Yapılan değişiklikleri yansıtmak için tutulmamızı yeniden başlatmamız tavsiye edilir.
Yeniden başlattıktan sonra, kullanıcı menü çubuğundaki 'Pencere' seçeneğinden 'Tercihler' e giderek TestNG kurulumunu doğrulayabilir. Aynısı için aşağıdaki şekle bakın.
(Büyütülmüş görmek için resme tıklayın)
Örnek TestNG Projesi Oluşturulması
Tutulma IDE'de TestNG projesinin oluşturulmasıyla başlayalım.
Aşama 1: Menüdeki Dosya seçeneğine tıklayın -> Yeni'ye tıklayın -> Java Projesini Seçin.
Adım 2: Proje adını 'DemoTestNG' olarak girin ve 'İleri' düğmesine tıklayın. Bir sonlandırma adımı olarak, 'Bitir' düğmesine tıklayın ve Java projeniz hazır.
Aşama 3: Sonraki adım, TestNG kitaplığını yeni oluşturulan Java projesine yapılandırmaktır. Aynı şekilde, Yapılandırma Yolunu Yapılandır altındaki 'Kitaplıklar' sekmesine tıklayın. Aşağıda gösterildiği gibi 'Kitaplık ekle' üzerine tıklayın.
4. adım: Kullanıcı, yapılandırılacak kütüphaneyi seçmesini teşvik eden bir diyalog kutusuna tabi tutulacaktır. TestNG'yi seçin ve aşağıdaki resimde gösterildiği gibi 'İleri' düğmesine tıklayın. Sonunda, 'Bitir' düğmesine tıklayın.
TestNG artık Java projesine eklenmiştir ve gerekli kitaplıklar, proje genişletildikten sonra paket gezgininde görülebilir.
Önceki eğiticide gösterildiği gibi, indirilen tüm Selenium kitaplıklarını ve kavanozları projenin derleme yoluna ekleyin.
TestNG Sınıfı Oluşturma
Artık TestNG kullanarak test komut dosyası oluşturmaya başlamak için tüm temel ayarları yaptık. TestNG kullanarak örnek bir komut dosyası oluşturalım.
Aşama 1: 'DemoTestNG' projesini genişletin ve 'src' klasörüne geçin. 'Src' paketine sağ tıklayın ve Yeni -> Diğer'e gidin.
Adım 2: TestNG seçeneğini genişletin ve 'TestNG' sınıf seçeneğini seçin ve 'İleri' düğmesine tıklayın.
Aşama 3: Gerekli detayları aşağıdaki gibi döşeyin. Kaynak klasörünü, paket adını ve TestNG sınıf adını belirtin ve Bitir düğmesine tıklayın. Aşağıdaki resimden de anlaşılacağı gibi, kullanıcı ayrıca test sınıfı şemasında yansıtılacak çeşitli TestNG notasyonlarını da kontrol edebilir. TestNG ek açıklamaları bu oturumun ilerleyen bölümlerinde tartışılacaktır.
Yukarıda belirtilen TestNG sınıfı, varsayılan şema ile oluşturulacaktır.
Artık TestNG test komut dosyası için temel temeli oluşturduğumuza göre, şimdi gerçek test kodunu enjekte edelim. Önceki oturumda kullandığımız kodu kullanıyoruz.
Senaryo:
- Tarayıcıyı başlatın ve 'gmail.com' u açın.
- Sayfanın başlığını doğrulayın ve doğrulama sonucunu yazdırın.
- Kullanıcı adını ve Şifreyi girin.
- Oturum aç düğmesine tıklayın.
- Web tarayıcısını kapatın.
Kod:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
TestNG ile ilgili Kod Açıklaması
1) @Test - @Test, TestNG ek açıklamaları . Bu açıklama, programın yürütülmesine @ Test olarak açıklanan yöntemin bir test yöntemi olduğunu bilmesini sağlar. Farklı TestNG ek açıklamalarını kullanabilmek için paketi içe aktarmamız gerekiyor ' ithalat org.testng.annotations. * ”.
2) TestNG kullanarak test komut dosyaları oluştururken main () yöntemine gerek yoktur. Programın yürütülmesi ek açıklamalara göre yapılır.
3) Bir açıklamada, beklenen ve gerçek değeri karşılaştırırken Assert sınıfını kullandık. Assert sınıfı, çeşitli doğrulamaları gerçekleştirmek için kullanılır. Farklı iddiaları kullanabilmek için, ' ithalat org.testng.Assert ”.
TestNG Komut Dosyasını Yürütme
TestNG test komut dosyası aşağıdaki şekilde yürütülebilir:
=> Editör veya paket gezgini içindeki java sınıfının içinde herhangi bir yere sağ tıklayın, 'Farklı Çalıştır' seçeneğini seçin ve 'TestNG Test' e tıklayın.
TestNG sonucu iki pencerede görüntülenir:
- Konsol Penceresi
- TestNG Sonuç Penceresi
Sonuç pencereleri için aşağıdaki ekran videolarına bakın:
android telefonlar için mp3 bedava indirmeler
(Büyütülmüş görmek için resme tıklayın)
HTML Raporları
TestNG, test yürütmeleri için kullanıcı tarafından okunabilir ve anlaşılır HTML raporları oluşturma konusunda harika bir yeteneğe sahiptir. Bu raporlar, herhangi bir tarayıcıda görüntülenebilir ve ayrıca Eclipse’in yerleşik tarayıcı desteği kullanılarak da görüntülenebilir.
HTML raporu oluşturmak için aşağıdaki adımları izleyin:
Aşama 1: Yeni oluşturulan TestNG sınıfını yürütün. TestNG sınıfını içeren projeyi sağ tıklayıp “Yenile” seçeneğini seçerek yenileyin.
Adım 2: Projede “src” klasör seviyesinde “test-çıktı” olarak adlandırılan bir klasör oluşturulacaktır. 'Test-output' klasörünü genişletin ve Eclipse tarayıcısıyla 'emailable-report.html' dosyasını açın. HTML dosyası, son yürütmenin sonucunu görüntüler.
Aşama 3: Tutulma ortamında HTML raporu açılacaktır. Aynısı için aşağıdaki resme bakın.
Varsa, yeni yürütmelerin sonuçlarını görmek için sayfayı yenileyin.
TestNG'de Öncelik Belirleme
Kod Parçacığı
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Kod İzlenecek Yol
Bir test komut dosyası birden fazla test yönteminden oluşuyorsa, yürütme önceliği ve sırası TestNG ek açıklaması '@Test' kullanılarak ve 'öncelik' parametresi için bir değer ayarlanarak ayarlanabilir.
Yukarıdaki kod parçacığında, tüm yöntemlere @Test yardımı eklenmiştir ve öncelikler 0, 1 ve 2 olarak ayarlanmıştır. Dolayısıyla, test yöntemlerinin yürütüleceği yürütme sırası şöyledir:
- Yöntem 1
- Yöntem2
- Yöntem3
Ek Açıklamalar Desteği
TestNG ve JUnit'te sağlanan birkaç ek açıklama vardır. İnce fark, TestNG'nin JUnit'e biraz daha gelişmiş ek açıklamalar sağlamasıdır.
TestNG Ek Açıklamaları
Aşağıda, TestNG'deki en kullanışlı ve en uygun ek açıklamaların listesi verilmiştir:
Ek açıklama | Açıklama |
---|---|
@Dersten sonra | Ek açıklama, sisteme @AfterClass olarak not verilen yöntemin aynı test sınıfı içinde son test yöntemi çalıştırıldıktan sonra yürütülmesi gerektiğini bildirir. |
@Ölçek | Ek açıklama, sisteme @Test olarak not verilen yöntemin bir test yöntemi olduğunu bildirir |
@Evleneceksen | Ek açıklama, sisteme @BeforeSuite olarak not verilen yöntemin tüm paketteki testleri yürütmeden önce yürütülmesi gerektiğini bildirir. |
@Kafadergisi | Ek açıklama, sisteme @AfterSuite olarak not verilen yöntemin tüm paketteki testler gerçekleştirildikten sonra yürütülmesi gerektiğini bildirir. |
@Evleneceksen | Ek açıklama, sisteme @BeforeTest olarak not verilen yöntemin aynı test sınıfı içinde herhangi bir test yöntemi çalıştırılmadan önce yürütülmesi gerektiğini bildirir. |
@FterTest | Ek açıklama, sisteme @AfterTest ek açıklamalı yöntemin aynı test sınıfı içinde herhangi bir test yöntemi çalıştırıldıktan sonra yürütülmesi gerektiğini bildirir. |
@Dersten önce | Ek açıklama, sisteme @BeforeClass olarak not verilen yöntemin aynı test sınıfı içinde ilk test yöntemini çalıştırmadan önce yürütülmesi gerektiğini bildirir. |
@Evleneceksen | Ek açıklama, sisteme @BeforeMethod ek açıklamalı yöntemin, aynı test sınıfı içinde herhangi bir test yöntemini yürütmeden önce yürütülmesi gerektiğini bildirir. |
@AfterMethod | Ek açıklama, sisteme @AfterMethod ek açıklamalı yöntemin aynı test sınıfı içinde herhangi bir test yöntemi çalıştırıldıktan sonra yürütülmesi gerektiğini bildirir. |
@Evleneceksen | Ek açıklama, sisteme @BeforeGroups olarak açıklama eklenen yöntemin bir grubu içeren ve grubun ilk test yöntemini çalıştırmadan önce yürütülmesi gereken bir yapılandırma yöntemi olduğunu bildirir. |
@AfterGroups | Ek açıklama, sisteme @AfterGroups olarak not verilen yöntemin, bir grubu içeren ve grubun son test yöntemini çalıştırdıktan sonra yürütülmesi gereken bir yapılandırma yöntemi olduğunu bildirir. |
Not : Yukarıda bahsedilen ek açıklamaların çoğu JUnit 3 ve JUnit 4 çerçevesinde de kullanılabilir.
Sonuç
Bu eğitim aracılığıyla, sizi TestNG olarak adlandırılan java tabanlı bir test çerçevesiyle tanıştırmaya çalıştık. Oturuma çerçevenin kurulumu ile başladık ve senaryo oluşturma ve ileri konularla hareket ettik. TestNG tarafından sağlanan tüm ek açıklamaları tartıştık. Ek açıklamalar ve assert ifadeleri kullanarak ilk TestNG test komut dosyamızı uyguladık ve çalıştırdık.
Makale özeti:
- TestNG, hem geliştiriciler hem de test ediciler tarafından avantajlardan yararlanacak şekilde tasarlanmış gelişmiş bir çerçevedir.
- TestNG, Apache Yazılım Lisansı altında dağıtılan ve indirilmeye hazır olan açık kaynaklı bir çerçevedir.
- TestNG, gelişmiş özellikleri nedeniyle JUnit'ten daha üstün olarak kabul edilir.
- TestNG'nin Özellikleri
- Ek Açıklamalar Desteği
- Test paketlerinin oluşturulmasını gerektirmeyen gelişmiş yürütme metodolojisi
- Parametrelendirme desteği
- Veri sağlayıcıları kullanarak Veriye Dayalı Test Desteği
- Test yöntemleri için yürütme önceliklerini belirleme
- Birden çok iş parçacığı çalıştırılırken tehdit korumalı ortamı destekler
- Derleme araçları (Ant, Maven vb.), Entegre Geliştirme Ortamı (Eclipse) gibi çeşitli araçlar ve eklentilerle entegrasyonu kolayca destekler.
- ReportNG kullanarak etkili Rapor Oluşturma araçlarıyla kullanıcıyı kolaylaştırır
- TestNG'nin JUnit'e Göre Avantajları
- Gelişmiş ve kolay açıklamalar eklendi
- Yürütme kalıpları ayarlanabilir
- Test komut dosyalarının eşzamanlı yürütülmesi
- Test durumu bağımlılıkları ayarlanabilir
- TestNG ücretsiz olarak mevcuttur ve Eclipse Market kullanılarak Eclipse IDE'ye kolayca yüklenebilir.
- Kurulumun ardından TestNG, Eclipse ortamında bir kütüphane olarak mevcut olacaktır.
- Yeni bir Java Projesi oluşturun ve bir TestNG kitaplığı kullanarak derleme yolunu yapılandırın.
- Oluşturulan TestNG projesini genişleterek yeni bir TestNG sınıfı oluşturun ve 'src' klasörüne gidin. 'Src' paketine sağ tıklayın ve Yeni -> Diğer'e gidin. TestNG sınıfı seçeneğini seçin.
- @Test, TestNG tarafından sağlanan ek açıklamalardan biridir. Bu açıklama, programın yürütülmesine @ Test olarak açıklanan yöntemin bir test yöntemi olduğunu bilmesini sağlar. Farklı TestNG ek açıklamalarını kullanabilmek için paketi içe aktarmamız gerekiyor ' ithalat org.testng.annotations. * ”.
- TestNG kullanarak test komut dosyaları oluştururken main () yöntemine gerek yoktur.
- Beklenen ve gerçek değeri karşılaştırırken Assert sınıfını kullanıyoruz. Assert sınıfı, çeşitli doğrulamaları gerçekleştirmek için kullanılır. Farklı iddiaları kullanabilmek için, ' ithalat org.testng.Assert ”.
- Bir test komut dosyası birden fazla test yönteminden oluşuyorsa, yürütme önceliği ve sırası TestNG ek açıklaması '@Test' kullanılarak ve 'öncelik' parametresi için bir değer ayarlanarak ayarlanabilir.
- TestNG, otomatik olarak insan tarafından okunabilir test yürütme raporları oluşturma özelliğine sahiptir. Bu raporlar herhangi bir tarayıcıda görüntülenebilir ve ayrıca Eclipse’in yerleşik tarayıcı desteği kullanılarak da görüntülenebilir.
Sonraki Eğitim # 13 : Selenium serisindeki gelecek öğreticilerle devam ederken, web sayfalarında bulunan çeşitli web öğesi türlerini ele almaya odaklanacağız. Bu nedenle, Bir sonraki eğiticide, odak noktamızı 'açılır menülere' yoğunlaştıracağız ve bunların işleme stratejilerini uygulayacağız. Ayrıca, WebDriver'ın Select sınıfı ve açılır listelerde değer seçme yöntemlerini de tartışacağız.
Okuyucular için bir açıklama : Selenium serisinin bir sonraki öğreticimiz işleme modundayken, okuyucular TestNG çerçevesini kullanarak kendi temel WebDriver komut dosyalarını oluşturmaya başlayabilir.
Daha gelişmiş komut dosyaları ve kavramlar için, TestNG sınıflarınıza olabildiğince çok ek açıklama ve onay ekleyin ve bunları TestNG ortamını kullanarak yürütün. Ayrıca, TestNG tarafından oluşturulan HTML raporlarını analiz edin.
Önerilen Kaynaklar
- Selenium Komut Dosyaları Oluşturmak için Firebug Nasıl Kullanılır - Selenium Eğitimi # 4
- JUnit Framework'e Giriş ve Selenium Script'te Kullanımı - Selenium Tutorial # 11
- Selenyumda TestNG Ek Açıklamalarının Nasıl Kullanılacağını Öğrenin (Örneklerle)
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium Komut Dosyaları Oluşturmak İçin Chrome ve IE Tarayıcılarda Öğeler Nasıl Bulunur - Selenium Tutorial # 7
- Selenium Framework Oluşturma ve Excel'den Test Verilerine Erişme - Selenium Tutorial # 21
- Jenerikler ve Test Takımları Oluşturma - Selenium Eğitimi # 22
- Yeni Başlayanlar İçin Derinlemesine Tutulma Öğreticileri