TestNG Grupları: Dahil Et, Örneklerle Hariç Tut - Selenyum Eğitimi

İçindekiler:

Anonim

TestNG, birim, işlevsel, uçtan uca, UI ve entegrasyon testi gibi farklı test tasarım türlerini kapsayan bir Test çerçevesidir.

XML oluşturarak ve onu maven aracılığıyla çalıştırarak tek veya birden çok paketi çalıştırabilirsiniz (burada paket, bir grup sınıfı uygun bir yönetici biçiminde kapsüllemek anlamına gelir).

Bu eğitimde öğreneceksiniz-

  • Örneklerle TestNG Grupları
  • Ortam değişkeninde maven ve Java yolunu ayarlayın (Windows kullanıcısı için)
  • XML'e giriş ve XML dosyaları nasıl yapılır
  • Gruplama yerine başka bir mekanizma, test XML'sinde "hariç tut" veya "dahil et" dir
  • XML dosyası kullanılarak kod nasıl çalıştırılır (video demosu)

Örneklerle TestNG Grupları

Testng'de grupları ne zaman kullanırız,

  • Test yöntemlerini farklı sınıflarda (işlevselliğe bağlı olarak) ayrı ayrı tanımlamak istemiyoruz ve
  • Aynı zamanda, kodda yokmuş gibi bazı test olaylarını yok saymak (yürütmek değil) istersiniz.
  • Yani bunu gerçekleştirmek için onları Gruplandırmalıyız. Bu, testNG'de desteklenen "dahil etme" ve "hariç tutma" mekanizması kullanılarak yapılır.

Aşağıdaki örnekte, XML dosyasında grupların nasıl kullanılacağının sözdizimini gösterdik.

@Test (gruplar = {"bağ", "güçlü_talar"}) 

Burada 2 grup adı kullanıyoruz, yani "bağ" ve "güçlü_tatlar" (bunlar, isteğinize göre değiştirilebilen mantıksal adlardır).

etiketi , XML'deki grupların başlangıcını tanımlar.

Test sınıflarından bahsedilen grubu seçmek için XML'inizi özelleştirin. Aşağıda, grupların XML dosyasında nasıl beyan edileceğine dair sözdizimi belirtilmiştir, örn.

Öyleyse, bir sınıfta 10 test yöntemi olduğunu varsayalım.

Onların dışında,

  • "Bonding" grubunda 6 yöntem etiketlenmiştir ve
  • 4 kişi "güçlüler" grubunda

İleride, Java tabanlı maven projesinde XML dosyalarını kullanan grupların kullanımını göstermek için maven / Java yolunu belirleyip Eclipse IDE'yi kullanacağız.

Ortam değişkeninde maven ve Java yolunu ayarlayın (Windows kullanıcısı için)

Lütfen https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html bakın

https://www.guru99.com/install-java.html

XML'e giriş ve XML dosyaları nasıl yapılır

  • Maven çerçevesindeki XML (Extensible Markup Language) dosyası, bir veya daha fazla testin bilgilerini içerir ve etiketiyle tanımlanır .
  • XML'deki test bilgileri etiketi ile temsil edilir ve bir veya daha fazla TestNG sınıfı içerebilir.
  • Test yöntemlerinin üzerindeki @Test açıklamasını içeren bir Java sınıfı , TestNG yöntemleri olarak tanımlanır.

Birden çok etiket, , ve gibi çalışan bir testNG xml oluşturmak için bir sırayla kullanılır

  • Birincisi, yürütme raporu oluşturmak için rapor edilen testNG'ye tüm bilgileri tanımlayan mantıksal bir adı tutan etiketidir.
  • İkincisi , geçme, kalma, test durumlarını atlama gibi test yürütme raporu bilgilerini ve yürütme için toplam süre ve grup bilgisi gibi diğer bilgileri tutan mantıksal ad
  • Üçüncüsü, , com.group.guru99 kullanılan paket ve Test Sınıfı adı TC_Class1'dir.

Bu XML'i yaklaşan videonun olumsuz tarafı için kullanacağız.

Gruplama yerine başka bir mekanizma, test XML'sinde "hariç tut" veya "dahil et" dir

Diyelim ki, grup mekanizması kompleksinin kullanımını buluyorsunuz ve ardından testNG XML, bir testi hariç tutma / dahil etme işlevini kolaylaştırıyor.

Hariç Tutma Etiketi : Hariç tutma etiketi için sözdizimi  Etiketi Dahil Et :  etiketini içermek için sözdizimi

Not: Bir seferde birden fazla test senaryosu ekleyebilir / hariç tutabiliriz ve bu, Gruplarla da çalışır.

XML dosyası kullanılarak kod nasıl çalıştırılır (video demosu)

Java Kodunun ve XML'in grupla açıklaması, etiketi XML'e dahil etme ve hariç tutma .

  • Senaryo : Guru99 demo Bankacılık sitesini başlatın, oturum açma sayfasında birkaç şeyi doğrulayın, ardından kimlik bilgilerini girin ve oturum açtığınızda uygulamadaki birkaç yeni şeyi yeniden doğrulayın.

Not : Kodladığınız her adımın ayrı yöntemlerle bildirilmesi gerekir, ancak yürütüldüğünde, XML dosyasındaki girişlere bağlı olarak test yöntemlerini çalıştırır.

Yöntem 1 : Tarayıcıyı başlatın ve URL'yi başlatın (tc01LaunchURL ())

Yöntem 2 : Oturum Açma Sayfası Başlığını Doğrula (tc02VerifyLaunchPage ())

Yöntem 3 : Oturum açma formunda userName ve Password girin (tc03EnterCredentials ())

Yöntem 4 : Kullanıcı Panosunda Yönetici Kimliğinin varlığını doğrulayın (tc04VerifyLoggedInPage ())

Yöntem 5 : Kullanıcı DashBoard'da birkaç bağlantıyı daha doğrulayın (tc05VerifyHyperlinks ())

Senaryomuz için kod:

paket com.group.guru99;içe aktar java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;public class TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [içerir (text (), 'Yönetici Kimliği')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Bu test durumu webDriver'ı başlatacaktır* /@Test (gruplar = {"bağ", "güçlü_talar"})public void tc01LaunchURL () {webDriver.manage (). window (). maximize ();webDriver.manage (). timeout (). örtük olarakWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Giriş Sayfasındaki Başlığın varlığını kontrol edecek* /@Test (gruplar = {"bağ"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). İsDisplayed (),"Ana Sayfa başlığı görüntülenmiyor");System.out.println ("Ana Sayfa başlığı görüntülenir");}/ *** Bu test senaryosu Kullanıcı adı ve parolayı girecek ve ardından* oturum açma düğmesi* /@Test (gruplar = {"bağ", "güçlü_talar"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). tıklayın ();}/ *** Bu test senaryosu yöneticinin DashBoard'daki kimliğini doğrulayacaktır* /@Test (gruplar = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). İsDisplayed (),"Yönetici kimliği etiketi görüntülenmiyor");System.out.println ("Yönetici Kimliği etiketi görüntülenir");}/ *** Bu test senaryosu, Yeni müşteri bağlantısının varlığını kontrol edecektir.* Ve Sol paneldeki Fon Transferi bağlantısı* /@Test (gruplar = {"bağ"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). İsEnabled (),"Yeni müşteri köprüsü görüntülenmiyor");System.out.println ("Yeni müşteri köprüsü görüntülenir");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). İsEnabled (),"Para Transferi köprüsü görüntülenmiyor");System.out.println ("Para Transferi köprüsü görüntülenir");}}

Lütfen Dikkat: Kimlik bilgileri yalnızca 20 gün boyunca geçerlidir, bu nedenle yerel makinenizde kod çalıştırmaya çalışıyorsanız, geçersiz kimlik bilgileri hatasıyla karşılaşabilirsiniz. Giriş kimlik bilgilerinizi oluşturmak için lütfen aşağıdaki adımları bulun:

  1. Http://www.demo.guru99.com'u başlatın
  2. E-posta kimliğinizi kutuya girin.
  3. Enter'a tıklayın ve giriş bilgilerinizi ekranda görün.

Kod Açıklaması:

Yukarıda belirtildiği gibi, her eylemi bağımsız yöntemlerde gerçekleştirmek için 5 test senaryosu oluşturduk.

Bunu her yöntemle gözlemleyebilirsiniz, içinde bir değer tutan bir grup parametresini ilişkilendirdik.

Temel olarak, bunlar, farklılaşan grupların isimleridir, yani "güçlüler" ve "bağ".

  • Birinci ve Üçüncü yöntemler "bonding", "strong_ties" olarak etiketlenir; bu, herhangi bir grupta XML güncellenirse bu Test Vakasının çalışacağı anlamına gelir.
  • İkinci yöntem yalnızca "bağlama" grubuna etiketlenir, bu, XML'in bağlama grubu ile güncellenmesi anlamına gelir. Sadece bu durumda bu test durumu çalışacaktır.
  • Dördüncü Test senaryosu, güçlü_tiler grubuna etiketlenir; bu, bu test senaryosunun yalnızca XML, strong_ties grup adıyla güncellenmesi durumunda çalışacağı anlamına gelir.
  • Son fakat en az beşinci test senaryosu bonding grubuna eklenir; bu, bu test senaryosunun yalnızca XML bonding group adıyla güncellenmesi durumunda çalışacağı anlamına gelir.

Yani genel olarak 4 senaryomuz var;

  1. Grup adından bağımsız olarak tüm test senaryolarını çalıştırmak istiyoruz. Bu durumda, Grup etiketinin XML çalıştırmasını kaldıracağız.
  1. Yalnızca iki grupla ilgili olan birkaç test örneğini çalıştırmak istiyoruz, örn. Güçlü_yaşlar veya bağ
  • Lütfen bakın:

  • Bu videoda, Grup parametresi XML çalıştırılarak yorumlanmıştır. Bu nedenle, tüm test durumlarının yürütüldüğünü göreceksiniz.
  • Videonun devamında, şimdi XML'e grup adını ekledik, yalnızca o gruba özgü test durumlarının yalnızca çalıştığını görebilirsiniz.
  1. Test senaryosunu hariç tutmak için Hariç Tutma mekanizmasını kullanıyoruz:
  • Lütfen bakın

  • XML çalıştırırken adlarını yazarak birkaç test durumunu (tc02) dışladığımızı görüyorsunuz. Nihai sonuçta bahsedilen test senaryoları çalışmadı.
  1. Son olarak, test senaryolarını dahil etmek için dahil etme test mekanizmasını kullanıyoruz (tc01LaunchURL, tc03EnterCredentials ve tc05VerifyHyperlinks)
    • Lütfen bakın

    • Bu videoda, XML'de bahsedilen test senaryolarının yalnızca test yürütme sırasında çalıştığını göreceksiniz.

    Lütfen belirtilen URL'den kodu indirin, her tür testXML'yi içerecektir:

    Yukarıdaki kodu indirin

    Sonuç

    Burada, Maven projesinde XML kullanarak test senaryoları çalıştırmanın nispeten yeni bir yolunu öğrendik.

    TestNG hakkında kısa bir giriş yaparak başladık ve Grupların tüm teknik özellikleri ile devam ettik, hariç tut ve dahil et.