어설션은 애플리케이션의 상태가 우리가 기대하는 것과 동일한지 여부를 결정합니다. 어설션이 실패하면 테스트 사례가 실패하고 실행이 중지됩니다.
Web Driver에서 Assertion을 사용하려면 Testng jar 파일을 다운로드하여 Eclipse에 추가해야 합니다. 아래 링크에서 Testng jar 파일을 다운로드하세요.
https://mvnrepository.com/artifact/org.testng/testng/6.7어설션에는 두 가지 유형이 있습니다.
긴 문자열 자바
- 하드 어설션
- 소프트 어설션
하드 어설션
Hard Assertion은 다음을 던지는 Assertion입니다. AssertException 테스트 케이스가 실패했을 때. Hard Assertion의 경우 Java 예외와 같은 catch 블록을 사용하여 오류를 처리할 수 있습니다. 하나의 제품군에 두 개의 테스트 케이스가 있다고 가정해 보겠습니다. 스위트의 첫 번째 테스트 케이스에는 실패한 어설션이 있으며, 슈트에서 두 번째 케이스를 실행하려면 어설션 오류를 처리해야 합니다. Hard Assertion에는 다음 메서드가 포함됩니다.
- AssertEquals
- AssertNotEquals
- 참이라고 주장하다
- 거짓 주장
- AssertNull
- AssertNotNull
거짓 주장()
어설션은 조건에서 반환된 부울 값을 확인합니다. 부울 값이 false이면 어설션은 테스트 케이스를 통과하고, 부울 값이 true이면 어설션은 예외로 인해 테스트 케이스를 중단합니다. AssertFalse() 메서드의 구문은 다음과 같습니다.
Assert.AssertFalse(condition);
예를 통해 이해해 봅시다:
package mypack; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','C:\work\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.navigate().to('https://www.spicejet.com/'); Assert.assertFalse(driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).isSelected()); System.out.println(driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).isSelected()); } }
위 코드에서 Assert.assertFalse()에는 false 값을 반환하는 조건이 포함되어 있습니다. 따라서 테스트 케이스를 통과합니다.
콘솔에 출력
package mypack; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','C:\work\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.navigate().to('https://www.spicejet.com/'); Assert.assertFalse(true); System.out.println(driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).isSelected()); }}
위 코드에서 Assert.assertFalse() 메서드에는 true 조건이 포함되어 있습니다. 따라서 어설션이 실패합니다. 이는 테스트 사례도 실패했음을 의미합니다. 어설션이 실패하면 예외로 인해 실행이 중지됩니다.
콘솔에 출력
AssertTrue()
어설션은 조건에서 반환된 부울 값을 확인합니다. 부울 값이 true이면 어설션은 테스트 케이스를 통과하고, 부울 값이 false이면 어설션은 예외로 인해 테스트 케이스를 중단합니다. AssertTrue() 메서드의 구문은 다음과 같습니다.
Assert.AssertTrue(condition);
예를 통해 이해해 봅시다.
자바의 선택 정렬
package mypack; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','C:\work\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.navigate().to('https://www.spicejet.com/'); driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).click(); Assert.assertTrue(driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).isSelected()); System.out.println(driver.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).isSelected()); } }
위의 코드에서, drivers.findElement(By.cssSelector('input[id*='SeniorCitizenDiscount']')).click(); 이 진술은 '고령자' 상자를 선택하는 데 사용됩니다. 다음 명령문에서는 테스트 케이스가 실패하는지 또는 통과하는지 확인하기 위해 어설션을 적용합니다. Assert.assertTrue() 메서드 내부의 매개변수가 참값을 반환하므로 테스트 사례가 통과됩니다.
산출
콘솔에 출력
AssertEquals()
AssertEquals()는 실제 결과와 예상 결과를 비교하는 데 사용되는 메서드입니다. 실제 결과와 예상 결과가 모두 동일하면 어설션은 예외 없이 통과되고 테스트 사례는 '통과'로 표시됩니다. 실제 결과와 예상 결과가 모두 동일하지 않으면 예외로 인해 어설션이 실패하고 테스트 사례가 '실패'로 표시됩니다. AssertEquals() 메서드의 구문은 다음과 같습니다.
Assert.assertEquals(actual,expected);
예를 통해 이해해 봅시다.
50.00개 중 10개
package mypack; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','C:\work\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.navigate().to('https://www.spicejet.com/'); Assert.assertEquals('5Adult',driver.findElement(By.id('divpaxinfo')).getText()); System.out.println(driver.findElement(By.id('divpaxinfo')).getText()); }}
콘솔에 출력
AssertNotEquals()
의 기능과 반대이다. AssertNotEquals() 방법. AssertNotEquals()는 실제 결과와 예상 결과를 비교하는 데 사용되는 메서드입니다. 실제 결과와 예상 결과가 모두 동일하지 않으면 예외 없이 어설션이 통과되고 테스트 케이스는 '통과'로 표시됩니다. 실제 결과와 예상 결과가 모두 동일하면 예외로 인해 어설션이 실패하고 테스트 사례가 '실패'로 표시됩니다. AssertNotEquals() 메서드의 구문은 다음과 같습니다.
AssertNotEquals(actual,expected,message);
예를 통해 이해해 봅시다.
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub Assert.assertNotEquals('Hello', 'How are you'); System.out.println('Hello...This is javaTpoint'); } }
위 코드에서 실제 문자열인 Hello는 예상되는 문자열인 How are you와 다릅니다. 따라서 어설션은 테스트 사례를 통과합니다. 그러면 다음 문이 실행되고 다음 문은 다음과 같습니다. System.out.println('안녕하세요...javaTpoint입니다'); .
산출
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub Assert.assertNotEquals('Hello', 'Hello'); System.out.println('Hello...This is javaTpoint'); }}
산출
AssertNull()
AssertNull()은 객체가 null인지 아닌지 확인하는 메서드입니다. 객체가 null이면 어설션은 테스트 케이스를 통과하고 테스트 케이스는 '통과'로 표시되며, 객체가 null이 아니면 어설션은 테스트 케이스를 중단하고 테스트 케이스는 '실패'로 표시됩니다. AssertNull() 메서드의 구문은 다음과 같습니다.
노드 js의 명령
Assert.assertNull(object);
예를 통해 이해해 봅시다.
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { Assert.assertNull(null); System.out.println('Hello...This is javaTpoint'); }}
산출
캣 팀프 무게
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub Assert.assertNull(10); System.out.println('Hello World'); } }
산출
AssertNotNull()
AssertNotNull()은 객체가 null인지 아닌지를 확인하는 메소드입니다. 객체가 null이 아니면 어설션은 테스트 케이스를 통과하고 테스트 케이스는 '통과'로 표시되며, 객체가 null이면 어설션은 테스트 케이스를 중단하고 테스트 케이스는 '실패'로 표시됩니다. AssertNotNull() 메소드의 구문은 다음과 같습니다.
Assert.assertNotNull(object);
예를 통해 이해해 봅시다.
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub Assert.assertNotNull(10); System.out.println('C Language'); }}
산출
package mypack; import org.junit.Assert; public class Checkbox_test { public static void main(String[] args) { // TODO Auto-generated method stub Assert.assertNotNull(null); System.out.println('C Language'); } }
산출
SoftAssertion
지금까지 Testng 프레임워크를 사용하여 Web Driver의 Hard Assertion에 대해 알아봤습니다. 하드 어설션에서는 어설션이 실패하면 테스트 사례를 중단하고 그렇지 않으면 실행을 계속합니다. 때로는 어설션이 실패하더라도 전체 스크립트를 실행하고 싶을 때가 있습니다. 이는 Hard Assertion에서는 불가능합니다. 이 문제를 극복하려면 testng에서 소프트 어설션을 사용해야 합니다.