assertions selenium using junit
İddialar Üzerine Bu Selenium Öğreticisi, Junit ve TestNG Çerçevelerini Kullanarak Selenyumdaki İddiaların ve Farklı Tür İddiaların ve Onaylama Yöntemlerinin Ne Olduğunu Açıklar:
bilgisayarımda ağ güvenlik anahtarı nasıl bulunur
Onaylar, bir test senaryosunu doğrulamak için kullanılır ve bir test olayının başarılı veya başarısız olup olmadığını anlamamıza yardımcı olur. Bir uygulamanın gerçek sonucu beklenen sonucun sonucuyla eşleşirse, iddianın karşılanmış olduğu kabul edilir.
Selenium kullanarak web uygulamalarını otomatikleştirirken, beklendiği gibi çalışıp çalışmadıklarını doğrulamak için testlerimizi doğrulamamız gerekir.(yani, bir test senaryosu sonucu başarılı / başarısız ise).
=> Selenium Yeni Başlayanlar Kılavuzuna Bir Göz Atın.
Bir test senaryosu, ancak tüm iddialar karşılanmışsa geçilmiş sayılır. Selenium'daki iddialar, bu makalede ayrıntılı olarak açıklanacak olan Junit ve TestNG çerçevelerinin önceden tanımlanmış yöntemleriyle ele alınabilir.
Ne öğreneceksin:
- Selenium'daki İddialar
- Selenyumda İddia Türleri
- Junit Assert Yöntemleri
- TestNG Onay Yöntemleri
- Onaylamalar için Örnek Programlar
- Sonuç
Selenium'daki İddialar
Onaylar, test senaryolarında çeşitli doğrulama türlerini gerçekleştirmek için kullanılır ve bu da test senaryosunun başarılı olup olmadığına karar vermemize yardımcı olur. We herhangi bir istisnasız çalışıyorsa bir testi başarılı olarak kabul edin.
Onaylar Üzerine Video Eğitimi
Selenyumda İddia Türleri
Selenium'da iki tür iddia vardır ve sınıflandırma, bir koşulun başarılı veya başarısız olmasından sonra iddianın nasıl davrandığına bağlıdır.
Burada, iki tür iddiayı tartışacağız Selenyum :
- Sert İddialar
- Yumuşak İddialar
Örnek için buraya tıklayın test durumları iddiaları test etmek için.
# 1) Kesin İddialar (Veya Sadece İddialar)
Sert bir iddia, onaylama koşulu karşılanana kadar yürütmeye devam etmez.
Kesin iddialar, genellikle bir onaylama koşulu karşılanmadığında bir Onaylama Hatası verir. Zor bir onaylama koşulu başarısız olduğunda test senaryosu hemen Başarısız olarak işaretlenir.
Bu tür bir iddiayı kullanmak için bir senaryo, doğru giriş yapıp yapmadığınızı doğrulamak istediğinizde ve başarılı bir giriş yapmadıysanız testi geçemediğinizde, çünkü ön koşul ( oturum açma) kendisi başarısız olur.
Burada gösterilen başka bir örneği ele alalım:
Bir web sayfasının başlığını iddia etmek için bir test senaryosu düşünün.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir”); @BeforeTest public void SetDriver(){ //Mention the location of ChromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
Örnekte, 'ActualTitle' değişkeni, başlık metnini otomasyondan alacaktır. 'ExpectedTitle' beklenen dize verilerini tutar. Assert.assertEquals (), her iki metnin de eşit olup olmadığını doğrular. Gerçek metin ve Beklenen metin aynı olduğu için yukarıdaki test senaryosu geçecek ve sonraki yürütme satırına geçecektir.
Konsol:
İddia geçti.
GEÇTİ: VerifyTitle
Başarısız olduğunda aynı test senaryosu bir istisna atar ve bu durumda yürütmeyi durdurur.
Şimdi Beklenen Başlığı yanlış olanla değiştirelim.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ //Mention the location of chromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Welcome to Amazon”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
Konsol:
java.lang.AssertionError:bekleniyor [Amazon'a Hoş Geldiniz]fakat[Amazon.com: Elektronik, Giyim, Bilgisayar, Kitap, DVD ve daha fazlası için Çevrimiçi Alışveriş]
Konsoldan, Assert deyiminde başarısızlıkla karşılaşıldığı için print deyiminin atlandığını (System.out.println) ve bir istisna attığını görebiliriz.
# 2) Yumuşak İddialar
Onaylama koşulu karşılanmasa bile, yumuşak bir iddia, test yürütmenin bir sonraki adımıyla devam eder.
Esnek İddialar, istenmedikçe bir iddia başarısız olduğunda otomatik olarak bir istisna atmayan iddia türleridir. Bu, bir formda birden çok doğrulama yapıyorsanız kullanışlıdır ve bunlardan yalnızca birkaç doğrulamanın test senaryosu durumuna karar verme üzerinde doğrudan etkisi vardır.
Burada, SoftAssert adlı bir sınıf kullanıyoruz ve yürütme sırasında yakalanan tüm istisnaları atmak için assertAll () yöntemi çağrılıyor. SoftAssert kullanıldığında, onaylama gerçekleştirir ve bir istisna bulunursa hemen atılmaz, bunun yerine yakalanan tüm istisnaları atmak için assertAll () yöntemini çağırana kadar devam eder.
Her test senaryosu için 'SoftAssert' sınıfının farklı nesnelerini kullanmak akıllıca olacaktır.
Sayfanın başlığını öne sürmek için test senaryosunu düşünün
Aşağıdaki örnekte, iki farklı test durumunda kullanılmak üzere 'SoftAssert' sınıfının iki nesnesi oluşturulmuştur.
public class LearnAssertionsSoft { WebDriver driver; //Object of Class SoftAssert is created to use its methods SoftAssert softassert = new SoftAssert(); SoftAssert softassert2 = new SoftAssert(); //current project workspace String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created - Chrome browser is opened driver.manage().window().maximize(); } //Soft Assertion example - with a failure test case example @Test public void verifyTitle(){ driver.get('https://amazon.in'); String ActualTitle = driver.getTitle(); System.out.println('Actual Title :'+ActualTitle); String ExpectedTitle = 'cameras, books, watches, apparel, shoes and e-Gift Cards. Free Shipping & Cash on Delivery Available.'; //Soft assert applied to verify title softassert.assertEquals(ActualTitle, ExpectedTitle); //If failed, this line gets printed and execution is not halted System.out.println('Assertion 1 is executed”); softassert.assertAll(); } //Soft Assertion example - with a positive flow test case example @Test public void verifyElement(){ WebElement AmazonIcon = driver.findElement(By.Xpath(“//div[contains(@id,’amazon_icon’)]); softassert2.assertEquals (true, AmazonIcon.isDisplayed()); softassert2.assertAll(); System.out.println('Icon is displayed'); System.out.println('Assertion 2 is executed”); } @AfterTest public void closedriver(){ driver.close(); //Checks for failures if any and throws them at the end of execution } }
Konsol:
Gerçek Başlık: Amazon.com: Elektronik, Giyim, Bilgisayar, Kitap, DVD ve daha fazlası için Çevrimiçi Alışveriş
Onay 1 yürütüldü
Simge görüntülenir
Onay 2 yürütüldü
java.lang.AssertionError: Aşağıdaki iddialar başarısız oldu:
bekleniyordu [Amazon'a Hoş Geldiniz] ancak bulundu [Amazon.com: Elektronik, Giyim, Bilgisayar, Kitap, DVD ve daha fazlası için Çevrimiçi Alışveriş]
Konsoldan, iddianın ilk test durumundaki (validTitle) bir başarısızlık olmasına rağmen, yürütmenin bir sonraki satıra devam ettiğini anlayabiliriz, burada - 'İddia 1 yürütüldü' ifadesi yazdırılır ve yalnızca softAssert çağrıldıktan sonra, istisna atıldı.
Sert ve Yumuşak İddiayı Ne Zaman Kullanmalı?
Bir onaylama başarısız olduktan sonra bile yürütülecek bir test senaryosunun tüm adımlarını yürütmeniz gerekiyorsa ve ayrıca onay istisnasını bildirmek istiyorsanız, Esnek Onayları kullanmayı seçin. Soft Assertions'ı test komut dosyalarınızda kullanmak iyi bir uygulama ve test yürütmenizi ele almanın etkili bir yoludur
Test senaryosu yürütmenizin yalnızca bir onay geçildikten sonra devam etmesini istiyorsanız ( Örneğin, Geçerli oturumu doğrulamak ve yalnızca o zaman diğer adımları uygulamak için), ardından Sabit Onayları kullanın.
Junit Assert Yöntemleri
Junit Assert yöntemlerinin çeşitli türleri aşağıda ayrıntılı olarak açıklanmıştır.
# 1) assertEquals
assertequals yöntemi, beklenen sonucu gerçek sonuçla karşılaştırır. Beklenen sonuç gerçek sonuçla eşleşmezse bir AssertionError atar ve program yürütmesini assert equals yönteminde sonlandırır.
Sözdizimi:
public static void assertEquals(String expected, String actual)
Misal:
Dize bekleniyor = “https://www.google.com”;
Dize gerçekURL = “https://www.google.com”;
Assert.assertEquals (beklenen, gerçek URL);
# 2) assertTrue
asserttrue yöntemi, belirtilen bir koşulun doğru olduğunu varsayar.
İki parametre alır, yani biri mesaj, diğeri ise iddianın uygulanması gereken koşuldur. Asserttrue yöntemine iletilen koşul karşılanmazsa bir AssertionError atar.
Sözdizimi:
public static void assertTrue(java.lang.String message, boolean condition)
mesajı - Onaylama Hatası durumunda görüntülenecek mesaj.
koşul - İddianın uygulanması gereken koşul.
Misal:
Assert.assertTrue ('Doğru test mesajı doğrulayın', doğru);
# 3) assertFalse
assert false yöntemi, belirtilen bir koşulun yanlış olduğunu iddia eder.
İki parametre alır, yani biri mesaj, diğeri ise iddianın uygulanması gereken koşuldur. Yanlış iddiası yöntemine geçen koşul karşılanmazsa bir AssertionError atar.
Sözdizimi:
public static void assertFalse(java.lang.String message, boolean condition)
mesajı - Onaylama Hatası durumunda görüntülenecek mesaj.
koşul - İddianın uygulanması gereken koşul.
Misal:
Assert.assertFalse ('Yanlış test mesajı onaylayın' yanlış);
# 4) assertNull
assert null, sağlanan nesnenin bir boş değer içerip içermediğini doğrulamak için kullanılır. Parametre olarak bir nesneyi alır ve sağlanan nesne bir boş değer içermiyorsa bir AssertionError atar.
Sözdizimi:
public static void assertNull(Object object)
Misal:
DemoClass demo = yeni DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null, sağlanan bir nesnenin boş bir değer içermediğini doğrulamak için kullanılır. Parametre olarak bir nesneyi alır ve sağlanan nesne bir boş değer içermiyorsa bir AssertionError atar.
Sözdizimi:
public static void assertNotNull(Object object)
Misal:
DemoClass demo = yeni DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
aynı yöntemi ileri sür, parametreler olarak sağlanan iki nesnenin aynı nesneye atıfta bulunup bulunmadığını kontrol eder. Sağlanan nesneler sağlanan mesajla aynı nesneye başvurmuyorsa bir AssertionError atar.
Lütfen aynı Assert'in yalnızca nesnelerin referanslarını karşılaştırdığını, ancak gerçek değerleri karşılaştırmadığını unutmayın.
Sözdizimi:
public static void assertSame(String message, Object expected,Object actual)
Misal:
DemoClass1 demo1 = yeni DemoClass1 ();
DemoClass2 demo2 = yeni DemoClass2 ();
Assert.assertSame ('İki nesne eşittir', demo1, demo2);
# 7) assertNotSame
aynı olmadığını iddia etmek, iki nesnenin eşit olmadığını doğrular. Aynı nesneye başvuran iki nesne varsa, bir AssertionError atılır.
Lütfen aynı olmayan yöntemin nesnelerin referanslarını karşılaştırdığını ve nesnelerde bulunan değerleri karşılaştırmadığını unutmayın.
Sözdizimi:
public static void assertNotSame(String message, Object expected, Object actual)
Misal:
DemoClass1 demo1 = yeni DemoClass1 ();
DemoClass2 demo2 = yeni DemoClass2 ();
Assert.assertNotSame ('İki nesne eşit değildir', demo1, demo2);
# 8) assertArrayEquals
assert equals, iki nesne dizisinin eşit olduğunu doğrular. Her iki dizi de boş değerler içeriyorsa, eşit olarak kabul edilirler. Bu yöntem, her iki nesne dizisi de eşit kabul edilmezse, sağlanan mesajla birlikte bir AssertionError hatası atar.
Sözdizimi:
public static void assertArrayEquals(String message, Object[] expected, Object[] actual)
mesaj - Bir onaylama hatası durumunda görüntülenecek mesaj.
beklenen - Nesne dizisi.
real - Nesne dizisi.
Misal:
Dize [] beklenen = {'Mango', 'Elma', 'Muz'}
Dize [] gerçek = {'Mango', 'Elma', 'Muz'}
Assert.assertArrayEquals (beklenen, gerçek);
TestNG Onay Yöntemleri
TestNG Assert yöntemleri, yukarıda tartışılan Junit onaylama yöntemleriyle aynı olacaktır. Büyük Junit ve TestNG arasındaki fark iddia yöntemleri, iddiaları işleme yoluna girer.
TestNG, bağımlı sınıflar, Grup testleri, Parametreli testler vb. Gibi daha gelişmiş onay işleme teknikleri sağlar.
TestNG Onay Yöntemleri Üzerine Eğitim Videoları
Bölüm I
Bölüm II
Bölüm III
# 1) assertEquals
Bu yöntem, iki veri değerinin eşit olup olmadığını belirlemek için kullanılır. String, boolean, integer gibi farklı veri türlerinin değerlerini karşılaştırabiliriz. vb. Beklenen ve gerçek değerler aynı olduğunda, o zaman iddia istisnasız geçer. Değilse, bir AssertionError atılır.
oyun için bağlantı noktası tetikleme ve bağlantı noktası yönlendirme
Kullanım : Bu tür bir iddia, web sayfasında görüntülenen verilerin beklendiği gibi veya belirtilen gereksinime göre olduğu durumu doğrulamak için kullanılır.
Sözdizimi:
Assert.assertEquals(actual,expected)
Parametreler:
Güncel - Otomasyondan beklediğimiz gerçek değer.
Beklenen –Beklenen değer.
Misal: Bunu doğrulamak için, Amazon ana sayfasında 'Amazon.com: Elektronik, Giyim, Bilgisayar, Kitap, DVD ve daha fazlası için Çevrimiçi Alışveriş '
@Test public void verifyTitle() { WebDriver driver = new FirefoxDriver(); driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); }
Konsol:
İddia geçti.
GEÇTİ: VerifyTitle
Yukarıdaki örnekte, iki dizinin eşit değerler olduğu doğrulanmıştır. Aynı şekilde, tamsayı, boole vb. Gibi diğer veri türlerinin eşitliği doğrulanabilir.
# 2) assertNotEquals
assertNotEquals, iki veri değerinin eşit olup olmadığını doğrulamak için kullanılır. Bu, assertEquals Assertion'ın işleyişinin tam tersidir. Beklenen ve gerçek değerler eşleştiğinde, iddia bir istisna ile başarısız olur ve test senaryosunu 'başarısız' olarak işaretler.
Kullanım : Bu, her verinin bir web sayfasında benzersiz olduğunu doğrulamak istediğimiz durumlarda kullanılır. Örneğin , 2 telefon numarasının aynı olmadığı bir telefon rehberi.
Sözdizimi:
Assert.assertNotEquals(actual,expected)
Parametreler:
Güncel - Otomasyondan beklediğimiz gerçek değer.
Beklenen - Beklenen değer.
Misal: İki farklı alanın pin kodlarının benzersiz olduğunu / aynı olmadığını doğrulamak için.
@Test // test case to verify AssertNotEquals public void verifyAssertNotEquals{ WebDriver driver = new FirefoxDriver(); driver.get('http://chennaiiq.com/chennai/pincode-by-name.php'); WebElement Adambakkam = driver.findElement(By.xpath('//table[contains(@class,'TBox')]/tbody/tr[5]/td[3]')); WebElement Aminijikarai = driver.findElement(By.xpath('//table[contains(@class,'TBox')]/tbody/tr[15]/td[3]')); String Pincode1 = Adambakkam.getText(); String Pincode2 = Aminijikarai.getText(); System.out.println('Two Unique pincodes are : ' +Pincode1 +' && '+Pincode2); Assert.assertNotEquals(Pincode1, Pincode2); System.out.println(“Assert passed”); }
Konsol:
İki Benzersiz pin kodu şunlardır: 600012 && 600001
İddia geçti.
PASSED: confirmAssertNotEqual
# 3) assertTrue
assertTrue, belirli bir Boole koşulunun doğru olup olmadığını doğrulamak için kullanılır. Bu iddia, belirtilen koşul geçerse true döndürür, yoksa bir onaylama hatası atılır.
Sözdizimi:
Assert.assertTrue(BooleanCondition);
Parametreler :
BooleanCondition - Dönüş türünün True olup olmadığını kontrol etme koşulu.
Kullanım :
Misal: Amazon.in ana sayfasında SignIn düğmesinin bulunup bulunmadığını doğrulamak için (düğmenin görüntülenmesini isteyin).
Assert.assertTrue(SignIn.isDisplayed());
Burada Boole koşulunun - SignIn.IsDisplayed () DOĞRU döndürür.
Misal: Web sayfasında bir düğme olup olmadığını doğrulamak için.
@Test // Test cases for AssertTrue public void verifyAssertTrue(){ WebDriver driver = new FirefoxDriver(); driver.get('https://www.amazon.in');// Open browser and pass URL in address bar WebElement Navigation = driver.findElement(By.xpath('//*[@id='nav-link-yourAccount']')); WebElement SignInButton = driver.findElement(By.xpath('//span[text()='Sign in']')); Actions move = new Actions(driver); move.moveToElement(Navigation).build().perform(); Boolean checkButtonPresence = SignInButton.isDisplayed(); Assert.assertTrue(checkButtonPresence); System.out.println('Button is displayed'); }
Konsol:
Düğme görüntülenir
PASSED: confirmAssertTrue
# 4) assertFalse
assertFalse, belirli bir Boole koşulunun yanlış olup olmadığını doğrulamak için kullanılır. Başka bir deyişle, verilen Boole koşulunun dönüş türü False olmalıdır. Belirtilen koşul FALSE dönüş türüne sahipse, bu iddia başarılı değilse, bir onaylama hatası atılır.
Sözdizimi:
Assert.assertFlase(BooleanCondition);
Parametreler :
BooleanCondition - Dönüş türünün False olup olmadığını kontrol etme koşulu.
Kullanım : Kullanılabileceği bir senaryo, belirli bir eylemden sonra bir web sayfasında bir öğenin mevcut olup olmadığını doğrulamaktır.
Örnek 1: Oturum Açma Düğmesi, oturum açtıktan sonra görüntülenmemelidir.
Assert.assertFalse(SignIn.isDisplayed());
Bu, Boole koşulunun - SignIn.IsDisplayed () YANLIŞ döndürür.
Örnek 2:
Belirli bir eylemden sonra bir div'in kaybolup kaybolmadığını doğrulamak için. Bu nedenle, burada div'in görüntülenmediğini veya başka bir deyişle, görüntülenen bir div'de yanlış bir koşul olduğunu doğruluyoruz.
@Test // Test case for AssertFalse public void verifyAssertFalse() throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); WebElement CaptchaDiv = driver.findElement(By.xpath('//div[contains(@id,'ImgContainer')]')); WebElement CheckBox = driver.findElement(By.xpath('//*[@id='otpId']')); CheckBox.click(); Assert.assertFalse(CaptchaDiv.isDisplayed()); System.out.println('Captcha div dimmed out of screen'); }
Konsol:
Captcha div ekranın dışında karartıldı
GEÇTİ:validAssertFalse
# 5) assertNull
Bu iddia, bir nesnenin boş döndürme değerine sahip olup olmadığını doğrulamak için kullanılır. Başka bir deyişle, sonucun boş olup olmadığını kontrol eder. Nesne Null olduğunda, iddia herhangi bir istisna olmaksızın iletilir.
Sözdizimi:
AssertNull(Object)
Parametreler :
Nesne - Boş değer tutan herhangi bir veri değeri.
Kullanım:
Örnek 1:
Bir dizenin boş olup olmadığını kontrol edin.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNull(str1); // asserts if str1 holds null value System.out.println('String holds null value – Assert passed'); }
Örnek 2:
Chrome sürücüsünü başlatmadan önce sürücü değerinin boş olup olmadığını kontrol edin.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Burada, sürücü nesnesi başlatılmadığı için boştur. Bu nedenle, AssertNull (sürücü), 'sürücü' nesnesinin boş bir değer tutup tutmadığını doğruladığı için başarılı olacaktır.
# 6) assertNotNull
Bu iddia, Null değerinden başka geçerli bir dönüş türü bekliyor. Başka bir deyişle, Null değilse bir nesneyi kontrol eder. Dönüş türü Boolean, string, integer, list vb. Olabilir. Nesne boş olmadığında, Assertion geçilir, yoksa bir AssertionError atılır.
Sözdizimi:
AssertNotNull(Object)
Parametreler :
Nesne - Herhangi bir veri değerini tutan herhangi bir veri değeri.
Kullanım:
Örnek 1: Assert, bazı verileri tutan bir dizedir. Yani, Null değildir.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNotNull(str2); // asserts if str2 holds some value System.out.println('String holds null value – Assert passed'); }
Örnek 2: Firefox Driver'ı başlattıktan sonra sürücü nesnesinin boş olmadığını doğrulayın.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Burada, sürücü nesnesi firefox sürücüsüne başlatılır ve bu nedenle 'sürücü' nesnesi başlatılmadığı için bir değer taşır. Dolayısıyla, AssertNotNull (sürücü), 'sürücü' nesnesinin boş bir değer taşımaması durumunda doğrulandığı için başarılı olacaktır.
Tıklayın İşte örnek test durumları için.
Onaylamalar için Örnek Programlar
Onay Eşittir:
package Demo; import org.junit.Assert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionDemo { public static void main(String[] args) throws InterruptedException{ String sValue = 'Assert Equals Test'; Assert.assertEquals('Assert Equals Test', sValue); System.out.println('Test Passed'); } }
Kod Açıklaması:
Yukarıdaki kod, AssertEquals yönteminin kullanımını basit terimlerle göstermektedir.
- Daha önce tartışıldığı gibi, assert equals iki parametre alır, yani beklenen sonuç ve gerçek sonuç. Beklenen sonuç gerçek sonuçla uyuşmuyorsa, bir onaylama hatası atılır ve programın yürütülmesi assert equals yönteminde sona erer.
- Yukarıdaki kod, kullanıcı tanımlı dize değerini beklenen dize değeriyle karşılaştırır.
- Gerçek zamanlı olarak, gerçek sonucun, değerin çalışma zamanında getirileceği ve assert equals yöntemine bir parametre olarak geçirileceği kullanıcı tanımlı bir işlem olacağını lütfen unutmayın.
Doğru İddiası:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String[] args) throws InterruptedException{ String expectedTitle = 'Google'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Kod Açıklaması:
Yukarıdaki kod, assertTrue yönteminin kullanımını gösterir.
- Başlangıçta beklenen sayfa başlığını bir değişkene aktarıyoruz. Ardından bir firefox sürücüsü nesnesi oluşturuyoruz ve onu web sayfasına yönlendiriyoruz - https://www.google.com
- Daha sonra assertsTrue yöntemini kullanarak, açılmış sayfa başlığını beklenen sayfa başlığıyla karşılaştırıyoruz. Açılan sayfa başlığı beklenen başlığın başlığıyla uyuşmuyorsa, o zaman bir onaylama hatası atılır ve program yürütme assertTrue yönteminde sonlandırılır.
- Yukarıdaki kod, yalnızca gerçek sayfa başlığı beklenen sayfa başlığıyla eşleştiğinde başarıyla yürütülecektir.
Yanlış İddia:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String[] args) throws InterruptedException{ String expectedTitle = 'Google1'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Kod Açıklaması:
Yukarıdaki kod, yanlış iddia yönteminin kullanımını göstermektedir.
- Başlangıçta beklenen sayfa başlığını bir değişkene aktarıyoruz ve ardından firefox sürücüsünün bir nesnesini oluşturuyoruz ve web sayfasına gidiyoruz - https://www.google.com
- Daha sonra yanlış iddia yöntemini kullanarak, açılmış sayfa başlığını beklenen sayfa başlığıyla karşılaştırıyoruz. Açılan sayfa başlığı beklenen başlığın başlığıyla eşleşirse, o zaman bir onaylama hatası atılır ve programın yürütülmesi assert false yöntemiyle sonlandırılır.
- Yukarıdaki kod, yalnızca gerçek sayfa başlığı beklenen sayfa başlığıyla eşleşmediğinde başarıyla yürütülecektir.
Onaylar İçin Uçtan Uca Kod
Aşağıda, İddialar için örnek bir uçtan uca kod verilmiştir. Basitlik amacıyla aşağıdaki senaryoyu kullandık.
Senaryo:
- Firefox tarayıcısında https://www.google.com web sayfasını açın.
- Asserttrue yöntemini kullanarak, açılan sayfa başlığının beklenen sayfa başlığına eşdeğer olup olmadığını doğrulayın.
- Arama metin kutusuna arama anahtar kelimesini girin: Selenium.
- Klavyedeki Enter düğmesine basın.
- Assertequals yöntemini ve assert false yöntemini kullanarak, arama sonuçları sayfasında açılan sayfa başlığının beklenen sayfa başlığıyla eşdeğer olup olmadığını doğrulayın.
- Tarayıcıyı kapatın.
Basit kod:
packageDemo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo { public static void main(String args[]) throws InterruptedException { String expectedTitle = 'Google'; String expectedText = 'selenium - Google Search'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); // Open the web page https://www.google.com using firefox browser WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); // Validate if actual web page title matches with that of expected title using assert true method System.out.println('Assert true method validation'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); // Enter the keyword selenium on the search textbox WebElementsearchBox = driver.findElement(By.xpath('//*[@name='q']')); searchBox.sendKeys('selenium'); searchBox.sendKeys(Keys.ENTER); Thread.sleep(8000); // Validate the actual page title with expected page title using assert equals method System.out.println('Assert equals method validation'); Assert.assertEquals(expectedText, driver.getTitle()); // Page title validation using assert false method System.out.println('Assert false method validation'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); // Close the current browser driver.close(); } }
Kod çıkışı:
Başlangıçta, Firefox tarayıcı penceresi şu web sayfasıyla açılacaktır: https://www.google.com. Asserttrue yöntemi, açılan sayfa başlığının beklenen sayfa başlığıyla (Google) eşleşip eşleşmediğini doğrular.
Komut dosyası, arama anahtar kelimesini Selenium olarak girecek ve enter düğmesine basacaktır.
Yanlış beyan ve iddia yöntemleri, arama sonuçları ekranının gerçek sayfa başlığının beklenen başlığın başlığıyla ('selenyum - Google Arama') eşleşip eşleşmediğini karşılaştırır. Tarayıcı daha sonra driver.close yöntemi ile kapatılacaktır.
Konsol Çıkışı:
Aşağıda verilen metin Eclipse IDE üzerindeki konsol çıktısı olacaktır.
Assert Class kullanırken yaygın hatalardan kaçının
1. Projenizde JUnit, TestNG ve python kitaplıklarının yapılandırıldığını varsayalım
iki . Ancak betiğinizde TestNG açıklamasını kullanıyorsunuz ve yanlışlıkla Junit Assertion'ı seçiyorsunuz, ardından Assert sınıfınız kullanımdan kaldırılacak. Aşağıdaki ekran görüntüsüne bakın
3. Bu nedenle, uygun Assert Class'ı seçmek çok önemlidir, TestNg için tek org.TestNG Assert sınıfını seçin.
Dört. Junit için org.junit.Assert sınıfını vb. Seçin.
5. Soft Assertion gerçekleştirmek için zorunlu olarak assertAll () yöntemini çağırmamız gerekir
java dizisinden öğeleri kaldırmak
6. Bir iddia başarısız olduğunda, istisna değil, onaylama hatası verir.
Sonuç
Selenium'daki İddialar hakkındaki bu makaleyi aşağıdaki işaretlerle sonuçlandırabiliriz:
- Bir uygulamanın gerçek sonucunu beklenen sonuçla karşılaştırmak için bir iddia kullanılır.
- Bir test senaryosu, ancak tüm iddialar karşılanmışsa geçilmiş sayılır.
- AssertEquals yöntemi, beklenen sonucu gerçek sonuçla karşılaştırır. Beklenen sonuç gerçek sonuçla eşleşmezse bir AssertionError atar ve assertequals yönteminde program yürütmesini sonlandırır.
- AssertTrue yöntemi, belirtilen bir koşulun doğru olduğunu iddia eder. Asserttrue yöntemine iletilen koşul karşılanmazsa bir AssertionError atar.
- AssertFalse yöntemi, belirtilen bir koşulun yanlış olduğunu iddia eder. Yanlış yöntemi ileri sürmek için geçen koşul karşılanmazsa bir AssertionError atar.
- AssertEquals, AssertTrue ve AssertFalse yöntemleri Selenium'da en sık kullanılan iddialardır.
İçinde gelecek öğretici , gerçek zamanlı proje senaryolarında kullanılan çeşitli örnekleri tartışacağız ve amaca göre iddiaların nasıl kullanıldığını anlayacağız.
Bu makalenin Selenium'daki İddialar hakkındaki bilginizi zenginleştirdiğini umuyoruz !!
=> Kolay Selenyum Eğitim Serisini Okuyun.
Önerilen Kaynaklar
- JUnit Framework'e Giriş ve Selenium Script'te Kullanımı - Selenium Tutorial # 11
- Selenium Komut Dosyaları Oluşturmak için TestNG Framework Nasıl Kullanılır - TestNG Selenium Tutorial # 12
- 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'un JMeter ile entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Her birinin Artıları ve Eksileri ile En Popüler Test Otomasyon Çerçeveleri - Selenium Tutorial # 20
- 30+ En İyi Selenyum Öğreticisi: Gerçek Örneklerle Selenyum Öğrenin