Selenium WebDriver : 테스트 케이스 관리 및 보고서 생성을위한 TestNG



이 Selenium WebDriver 튜토리얼은 테스트 케이스를 관리하고 자세한 테스트 보고서를 생성하기 위해 Selenium과 함께 TestNG를 사용해야하는 필요성을 이해하는 데 도움이됩니다.

이전 블로그에서 첫 번째 Selenium WebDriver 테스트를 실행하는 방법을 설명했습니다. 이 블로그에서는 고급 Selenium WebDriver 개념을 다룰 것입니다. Selenium WebDriver에는 테스트 케이스 관리 및 테스트 보고서 생성과 관련하여 제한이 있다고 이미 몇 번 언급했습니다. 그렇다면 대안은 무엇입니까? Selenium만큼 인기있는 도구에는 확실히 해결 방법이 있어야합니다. 물론 그렇습니다! 이 제한을 극복하기 위해 Selenium과 TestNG의 조합을 사용할 수 있으며 이것이이 블로그의 토론 주제가 될 것입니다.

sas 프로그래밍은 무엇에 사용됩니까?

Selenium을 처음 사용하고 기본 개념에 대한 소개가 필요한 경우 여기에서 여정을 시작할 수 있습니다. ? 그러나 다른 사람들은이 블로그에서 TestNG for Selenium을 시작할 수 있습니다.또한 조직이 전문가를 적극적으로 찾고 있음을 알아야합니다. , 소프트웨어 테스터가 마스터하는 데 중요한 기술입니다.





전 세계의 소프트웨어 개발자는 테스트 케이스에 코드를 작성하면 디버깅 시간의 상당 부분을 절약한다는 데 만장일치로 동의 할 것입니다. 왜? 테스트 케이스는 강력하고 오류없는 코드를 만드는 데 도움이되기 때문입니다. 어떻게하나요? 전체 코드를 더 작은 테스트 케이스로 분할 한 다음 이러한 각 테스트 케이스를 통과 / 실패 조건으로 평가하여 오류없는 코드를 만들 수 있습니다. Selenium은 테스트 케이스에서 코드 실행을 지원하지 않으므로 TestNG를 사용해야합니다. 이것이 TestNG가 Selenium 프레임 워크에 적합한 곳입니다.

TestNG 약자 차세대 테스트 JUnit 및 NUnit에서 영감을받은 오픈 소스 테스트 자동화 프레임 워크입니다. 글쎄요, 영감을 받았을뿐 아니라이 두 프레임 워크로의 업그레이드입니다. 여기서 업그레이드가 무엇인지 물어볼 수 있습니다.TestNG를 통한 업그레이드는 이전에는 불가능했던 코드에서 테스트 주석, 그룹화, 우선 순위 지정, 매개 변수화 및 시퀀싱 기술과 같은 추가 기능을 제공한다는 것입니다.



테스트 케이스를 관리하는 것 외에도 TestNG를 사용하면 테스트에 대한 자세한 보고서도 얻을 수 있습니다. 실패한 테스트 케이스가 속한 그룹 및 해당 클래스와 함께 요약이 표시됩니다. 이와 같이 버그를 정확하게 찾을 수 있으면 개발자의 안심에 바로 수정할 수 있습니다. 아래 이미지는 TestNG의 작동을 보여줍니다.

testng-셀레늄 웹 드라이버

그렇다면 TestNG는 어떻게 작업을 수행합니까? 이 질문에 대한 답변은이 Selenium WebDriver 튜토리얼 블로그의 다음 섹션에서는 TestNG를 사용하여 다양한 테스트 케이스를 관리하는 방법에 대해 논의 할 것입니다.



TestNG를 사용하는 Selenium WebDriver

테스트 케이스는 다음 방법 중 하나로 정의하고 관리 할 수 ​​있습니다.

  1. 주석 테스트
  2. 우선 순위
  3. 테스트 케이스 비활성화
  4. 방법 종속성
  5. 그룹화
  6. 어설 션
  7. 보고서 생성

설명을 시작하겠습니다이러한 각 기능.

주석 테스트

먼저 다음과 같은 질문을 해보겠습니다. 특수 효과를 사용해야하는 이유는 무엇입니까? 언제 사용할 수 있습니까? Selenium의 주석은 실행할 다음 메소드를 제어하는 ​​데 사용됩니다. 테스트 주석은 테스트 코드의 모든 메서드 앞에 정의됩니다. 어떤 메서드에도 주석이 접두사로 붙지 않은 경우 해당 메서드는 무시되고 테스트 코드의 일부로 실행되지 않습니다. 이를 정의하려면 메소드에‘ @테스트 ‘. 예를 들어 아래 코드 스 니펫을보십시오.

package testng import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeClass import org.testng.annotations .BeforeMethod import org.testng.annotations.Test public class TestAnnotations {@Test public void myTestMethod () {System.out.println ( 'Inside method :-myTestMethod') WebDriver driver = new FirefoxDriver () driver.get ( 'http : //www.seleniumframework.com/Practiceform/ ') String title = driver.getTitle () System.out.println (title) driver.quit ()} @BeforeMethod public void beforeMethod () {System.out.println ('This 코드 조각이 메서드보다 먼저 실행됩니다 .- myTestMethod ') System.setProperty ('webdriver.gecko.driver ','C : UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe ')} @AfterMethod public void afterMethod () {System.out.println ('This piece 코드의 다음 메소드 후에 실행됩니다.-myTestMethod ')} @BeforeClass public void beforeClass () {Syste m.out.println ( '이 코드는 클래스가 실행되기 전에 실행됩니다.')} @AfterClass public void afterClass () {System.out.println ( '이 코드는 클래스가 실행 된 후에 실행됩니다.')} }

위의 코드에서 내가 'main'메소드를 정의하지 않은 것을 눈치 채 셨을 것입니다. 그러나 정의 된 다른 5 가지 방법이 있습니다. ‘myTestMethod’,‘beforeMethod’,‘afterMethod’,‘beforeClass’,‘afterClass’입니다. 또한 동일한 순서로 실행되지 않으므로 코드에서 메서드 정의 순서에 유의하십시오.

'myTestMethod'메소드는 @테스트 , 실행해야하는 주요 방법 또는 코드입니다. 이 메서드가 실행되기 전과 후에 주석이 추가 된 다른 메서드가 실행됩니다. 'beforeMethod'에 주석이 추가되었으므로 안녕하세요. , 'myTestMethod'가 실행되기 전에 실행됩니다. 마찬가지로‘afterMethod’는 안녕하세요. 이므로 'myTestMethod'이후에 실행됩니다.

그러나‘beforeClass’에는 뿡 빵뀨 즉, 클래스 자체가 실행되기 전에도 실행됩니다. 여기에 우리의 클래스 이름은 TestAnnotations , 따라서 클래스가 실행되기 전에‘beforeClass’내부의 코드가 실행됩니다. 마찬가지로‘afterClass’에는 안녕하세요. , 따라서 클래스 후에 실행됩니다. TestAnnotations 실행됩니다.

실행 순서에 대해 여전히 혼란이 있다면 아래 스 니펫이 확실히 도움이 될 것입니다.

1. BeforeSuite 2. BeforeTest 3. BeforeClass 4. BeforeMethod 5. 테스트 6. AfterMethod 7. AfterClass 8. AfterTest 9. AfterSuite

위 코드의 출력은 다음과 같습니다.

이 코드는 클래스가 실행되기 전에 실행됩니다.이 코드는 메소드 전에 실행됩니다.-myTestMethod 내부 메소드 :-myTestMethod 1493192682118 geckodriver INFO Listening on 127.0.0.1:13676 1493192682713 mozprofile :: profile INFO 프로파일 경로 사용 C : UsersVardhanAppDataLocalTemp ust_mozprofile .wGkcwvwXkl2y 1493192682729 geckodriver :: marionette INFO 시작 브라우저 C : Program Files (x86) Mozilla Firefoxirefox.exe 1493192682729 geckodriver :: marionette 정보 localhost : 59792에서 Marionette에 연결 중 : 59792 [GPU 6152] 경고 : 파이프 오류 : 109 : 파일 c : / builds /moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 1493192688316 Marionette INFO Listening on port 59792 Apr 26, 2017 1:14:49 PM org. openqa.selenium.remote.ProtocolHandshake createSession INFO : 감지 된 방언 : W3C JavaScript 오류 : http://t.dtscout.com/i/?l=http%3A%2F%2Fwww.seleniumframework.com%2FPracticeform%2F&j=, line 1 : TypeError : document.getElementsByTagNa me (...) [0]은 정의되지 않았습니다. Selenium Framework | Practiceform 1493192695134 Marionette INFO 새 연결이 더 이상 허용되지 않습니다 Apr 26, 2017 1:14:57 PM org.openqa.selenium.os.UnixProcess destroy SEVERE : Unable to kill process with PID 6724이 코드는 다음 메소드 후에 실행됩니다. myTestMethod이 코드는 클래스가 실행 된 후 실행됩니다. myTestMethod ================================= ============ 기본 테스트 테스트 실행 : 1, 실패 : 0, 건너 뛰기 : 0 ======================= ================================================ ==================== 기본 제품군 실행 된 총 테스트 : 1, 실패 : 0, 건너 뛰기 : 0 =============== ===============================

위의 출력에서 ​​볼 수 있듯이 테스트 실행 횟수는 1이고 실패한 횟수는 0입니다. 이는 코드가 성공했음을 의미합니다. 메서드 실행 순서도 순서대로나는앞서 언급했습니다.

컴퓨터에서이 코드를 실행하면 Selenium WebDriver가 Firefox 브라우저를 인스턴스화하고 Selenium Framework의 연습 양식으로 이동 한 다음 브라우저 인스턴스를 닫고 Eclipse IDE에서 위와 동일한 출력을 표시합니다.

내 코드에서 5 개의 다른 주석 만 사용했습니다. 그러나 실행될 다음 메소드를 제어하는 ​​데 사용할 수있는 더 많은 주석이 있습니다. 전체 주석 목록은이하:

안녕하세요. – 주석이 달린 방법 안녕하세요. 스위트의 모든 테스트가 실행되기 전에 실행됩니다.

@AfterSuite – 주석이 달린 방법 @AfterSuite 스위트의 모든 테스트가 실행 된 후에 실행됩니다.

@BeforeTest – 주석이 달린 방법 @BeforeTest 클래스에 속하는 테스트 메소드가 실행되기 전에 실행됩니다.

@AfterTest – 주석이 달린 방법 @AfterTest 클래스에 속한 모든 테스트 메서드가 실행 된 후에 실행됩니다.

@BeforeGroup – 주석이 달린 방법 @BeforeGroup 각 그룹이 실행되기 전에 실행됩니다.

@AfterGroup – 주석이 달린 방법 @AfterGroup 모든 그룹이 실행 된 후에 실행됩니다.

뿡 빵뀨 – 주석이 달린 방법 뿡 빵뀨 현재 클래스의 첫 번째 테스트 메서드가 호출되기 전에 한 번 실행됩니다.

@방과후 – 주석이 달린 방법 @방과후 현재 클래스의 모든 테스트 메서드가 실행 된 후 한 번 실행됩니다.

안녕하세요. – 주석이 달린 방법 안녕하세요. 클래스 내의 테스트 메서드가 실행되기 전에 실행됩니다.

안녕하세요. – 주석이 달린 방법 안녕하세요. 클래스 내부의 모든 테스트 메서드가 실행 된 후에 실행됩니다.

@테스트 – 주석이 달린 방법 @테스트 전체 프로그램의 주요 테스트 방법입니다. 이 메서드를 중심으로 주석이 추가 된 다른 메서드가 실행됩니다.

TestNG 보고서의 스크린 샷은아래에 있음 :-

우선 순위

우리는 어떻게 정의 할 수 있는지에 대해 이야기했습니다. @테스트 방법. 그러나 만약 당신이 하나 이상의 @테스트 메소드와 그들 사이의 실행 순서를 정의하고 싶습니까?

이 경우 우리는주석이 달린 테스트 케이스에 번호를 할당하여 평가합니다. 숫자가 작을수록 우선 순위가 높습니다. 테스트 케이스를 정의하는 동안 우선 순위를 매개 변수로 지정할 수 있습니다. 그러나 우선 순위가 할당되지 않은 경우 주석이 달린 테스트 메서드는 테스트의 알파벳 순서에 따라 실행됩니다. 아래 부분에서 테스트 주석의 매개 변수를보십시오.암호.

@Test (Priority = 2) public static void FirstTest () {system.out.println ( '우선 순위 # 2 때문에 테스트 케이스 번호 2입니다')} @Test (Priority = 1) public static void SecondTest () { system.out.println ( '우선 순위 # 1로 인한 테스트 케이스 번호 1')} @Test public static void FinalTest () {system.out.println ( '우선 순위가 없으므로 최종 테스트 케이스입니다') )}

테스트 케이스 비활성화

좀 더 흥미로운 것을 보여 드리겠습니다. 수백 개의 테스트 케이스로 구성된 백만 줄에 걸친 코드가 있고 하나의 테스트 방법 만 비활성화하려면 어떻게해야합니까? 코드의 어떤 부분도 삭제할 필요가 없습니다., 우리는 단순히 그 테스트 방법을 비활성화 할 수 있습니다.

테스트 케이스를 비활성화하는 작업도 매개 변수를 통해 수행됩니다. 우리는 설정할 수 있습니다 활성화 됨 'false'속성입니다. 기본적으로 모든 테스트 케이스가 활성화되므로 테스트를 작성할 때마다 정의 할 필요가 없습니다. 아래 부분에서 세 번째와 네 번째 방법의 매개 변수를보십시오.암호.

에코와 인쇄의 PHP 차이점
@Test (Priority = 2, enabled = True) public static void FirstTest () {system.out.println ( '우선 순위 # 2 때문에 테스트 케이스 번호 2입니다')} @Test (Priority = 1, enabled = True ) public static void SecondTest () {system.out.println ( '우선 순위 # 1로 인해 테스트 케이스 번호 1입니다')} @Test (enabled = false) public static void SkippedTest () {system.out.println ( '이것은 비활성화 되었기 때문에 건너 뛴 테스트 케이스입니다')} @Test (enabled = True) public static void FinalTest () {system.out.println ( '이는 활성화되고 우선 순위가없는 최종 테스트 케이스입니다. ')}

방법 종속성

이제 조건을 만족하는 경우에만 코드를 실행하거나 특정 메서드가 성공적으로 실행될 경우에만 코드를 실행하려는 상황이 발생하면 다음을 사용하여 수행 할 수 있습니다. DependOnMethod ()입니다. 이것은 기본적으로 다른 메서드에 따라 메서드가 실행되는 메서드 종속성의 조건입니다. 추가로 설정하면 alwaysRun 속성을 true로 설정하면 해당 메서드의 실패 / 통과 조건에 관계없이 메서드가 실행됩니다. 아래 코드 스 니펫의 코드를보십시오.

@Test public static void FirstTest () {system.out.println ( '이것은 실행될 첫 번째 테스트 케이스입니다')} @Test (dependsOnMethods = { 'FirstTest'}) public static void SecondTest () {system.out. println ( '실행할 두 번째 테스트 케이스입니다. 종속 메서드입니다.')} @Test (dependsOnMethods = { 'SecondTest'}) public static void FinalTest () {system.out.println ( '이것은 최종 테스트입니다. 케이스 어쨌든 실행됩니다. ')}

이제 테스트의 또 다른 중요한 측면으로 이동합니다.인 주석 그룹화 .

그룹화

지금 쯤이면 코드에서 테스트 케이스의 일부로 많은 메소드가있을 것임을 알아야합니다. 100 개의 테스트 케이스가 있지만 다음 테스트에서는 20 개의 테스트 케이스 만 실행하려고한다고 가정 해 보겠습니다. 우리가 할 수 있다고 생각하세요? 물론, 우린 할 수있어.

우리는 사용할 수 있습니다 여러 떼 이 목적을위한 속성. 여러 테스트 케이스에 그룹 이름을 할당하고 나중에 전체 코드 대신 그룹을 실행하도록 선택할 수 있습니다. 이해하려면 아래 코드 스 니펫을 살펴보십시오.그룹을 만드는 방법.

@Test (groups = { 'MyGroup'}) public static void FirstTest () {system.out.println ( 'This is a part of the Group : MyGroup')} @Test (groups = { 'MyGroup'}) public static void SecondTest () {system.out.println ( 'This is a part of the Group : MyGroup')} @Test public static void ThirdTest () {system.out.println ( '그러나 이것은 그룹 : MyGroup ')}

TestNG 어설 션

이제 TestNG의 다음 주제 인 어설 션으로 이동합니다. 이름에서 알 수 있듯이 테스트 방법에서 어설 션을 사용하여 테스트의 통과 / 실패 조건을 결정할 수 있습니다. 진술의 참 / 거짓 조건에 따라 테스트가 통과 / 실패합니다.

아래 코드에는 세 가지 테스트 방법이 포함되어 있습니다. 첫 번째와 세 번째 방법에는 통과 조건이 있고 두 번째 방법에는 실패 조건이 있습니다. 직접 코드를 참조하십시오.

package testng import org.testng.annotations.Test import org.testng.annotations.BeforeMethod import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.Assert import org.testng.annotations.AfterMethod public class Assertions {@BeforeMethod public void beforeMethod () {System.setProperty ( 'webdriver.gecko.driver', 'C : UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe')} public boolean isEqual (int a, int b) {if (a == b ) {true를 반환} else {false를 반환}} @Test public void testEquality1 () {Assert.assertEquals (true, isEqual (10, 10)) System.out.println ( 'This is a pass condition')} @Test public void testEquality2 () {Assert.assertEquals (true, isEqual (10, 11)) System.out.println ( '실패 조건입니다')} @Test public void getTitle () {WebDriver driver = new FirefoxDriver () driver. get ( 'https://www.gmail.com') 문자열 제목 = driver.getTitle () Assert.assertEquals (title, 'Gmail') System.out.println ( '다시 통과 조건입니다')} }

이 실행 후 생성 된 보고서를 보면 세 가지 테스트 중 하나는 실패하고 두 개는 통과 한 것을 알 수 있습니다. 주목해야 할 또 다른 중요한 점은 어설 션이 실패하면 해당 테스트의 다른 명령 / 코드 줄을 건너 뛴다는 것입니다. 어설 션이 성공한 경우에만 해당 테스트에서 다음 코드 줄이 실행됩니다. 아래 출력을 확인하십시오. system.out.println 첫 번째와 세 번째 방법에 대해서만 실행되었습니다.

1493277977348 geckodriver INFO Listening on 127.0.0.1:47035 1493277977993 mozprofile :: profile INFO 프로파일 경로 사용 C : UsersVardhanAppDataLocalTemp ust_mozprofile.Z7X9uFdKODvi 1493277977994 geckodriver :: marionette INFO 시작 브라우저 C : Program Files (x86) Mozilla Firefox INFO : Mozilla Firefox INFO localhost : 50758에서 Marionette에 연결 [GPU 6920] 경고 : 파이프 오류 : 109 : 파일 c : / builds / moz2_slave / m-rel-w32-00000000000000000000 / build / src / ipc / chromium / src / chrome / common / ipc_channel_win. cc, line 346 1493277981742 Marionette INFO Listening on port 50758 Apr 27, 2017 12:56:22 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO : Detected dialect : W3C 이것은 다시 통과 조건입니다 통과 조건입니다 통과 됨 : getTitle PASSED : testEquality1 FAILED : testEquality2 java.lang.AssertionError : 예상 [false]이지만 org.testng.Assert.fail (Assert.java:93)의 org.testng.Assert.failNotEquals (Assert.java : 512) org.testng.Assert.assertE에서 qualsImpl (Assert.java:134) at org.testng.Assert.assertEquals (Assert.java:115) at org.testng.Assert.assertEquals (Assert.java:304) at org.testng.Assert.assertEquals (Assert.java) : 314) at testng.Assertions.testEquality2 (Assertions.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown) Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) at org.testng.internal.Invoker.invokeMethod (Invoker.java:661) org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) at org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1193) at org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:126) ) at org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) at org.testng.TestRunner.privateRun (TestRunner.java:744) at org.testng.TestRu org.testng.SuiteRunner.runTest (SuiteRunner.java:380)의 nner.run (TestRunner.java:602) org.testng.SuiteRunner.runSequentially (SuiteRunner.java:375) at org.testng.SuiteRunner.privateRun (SuiteRunner .java : 340) at org.testng.SuiteRunner.run (SuiteRunner.java:289) at org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) org.testng.TestNG.runSuitesSequentially (TestNG.java:1301) at org.testng.TestNG.runSuitesLocally (TestNG.java:1226) at org.testng.TestNG.runSuites (TestNG.java:1144) at org.testng. org.testng.remote의 org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:230)의 org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:132)에서 TestNG.run (TestNG.java:1115) .RemoteTestNG.main (RemoteTestNG.java:76) ===================================== ======== 기본 테스트 테스트 실행 : 3, 실패 : 1, 건너 뛰기 : 0 =========================== =================== ============================== ================ 기본 제품군 실행 된 총 테스트 : 3, 실패 : 1, 건너 뛰기 : 0 ================================== ============

이것이 테스트 케이스 관리와 관련된 개념의 끝입니다. 하나 이상의 주제가 남았습니다. 바로 보고서 생성입니다. 보고서 생성은이 Selenium WebDriver 튜토리얼의 마지막 주제입니다.테스트가 실행됩니다.

해시 맵 구현 방법

보고서 생성

가장 중요한 점은 보고서가 .xml 파일을 통해서만 생성된다는 것입니다. 즉, 메서드이든 클래스이든 테스트하려는 그룹이든 모두 .xml 파일에 지정해야합니다.

따라서 먼저 프로젝트 아래에 새 폴더를 만들고 해당 폴더 안에 새 파일을 만들고 파일 이름을 지정하고 .xml 확장자로 저장할 수 있습니다. 패키지 탐색기를 마우스 오른쪽 버튼으로 클릭하여 새 폴더와 파일을 만들 수 있습니다. 파일을 생성했으면 창 하단의 소스 탭으로 이동하여 아래 스 니펫에 지정된대로 구성을 입력합니다.

 

첫 번째 줄은 XML 문서 유형 정의입니다. 이것은 모든 테스트 보고서에 대한 표준이며 필수입니다. 그러나 다른 줄은 꽤 자명합니다. 스위트, 테스트, 클래스 및 클래스에 대해 개방형 태그를 사용했습니다. Classes 태그에는 하나 이상의 클래스가 포함될 수 있습니다. 따라서 여러 클래스를 테스트하는 보고서를 생성하려는 경우 사용할 수 있습니다. 이것은 특히 긴 코드를 테스트하려는 개발자에게 유용합니다.

어쨌든 보고서로 돌아가서 태그를 연 후 각 제품군 또는 테스트 또는 클래스의 이름을 지정할 수 있으며 여는 모든 태그를 닫아야합니다. 내 스위트 이름을 다음과 같이 지정했습니다. TestNG , 테스트 이름 테스트 주석 및 클래스 이름 testng.TestAnnotations. 클래스 이름은 다음과 같은 형식입니다. ' packagename.classname’ .

이 파일을 TestNG 제품군으로 실행하면 실행이 시작되고 자세한 테스트 보고서를 받게됩니다. 콘솔 탭에 테스트 출력이 표시되고 다음 탭에 테스트 스위트의 결과가 표시됩니다. 내 코드를 실행하기 위해 생성 한 보고서는아래 스크린 샷. 이번에는 스위트 이름, 테스트 이름, 클래스 이름과 함께 각각을 실행하는 데 걸린 시간이 있음을 알 수 있습니다.

HTML 보고서 (인덱스 보고서 또는 Emailable-report)를 보려면 다음 페이지로 이동하십시오. 테스트 출력 작업 공간의 프로젝트 디렉토리 안에있는 폴더. 클릭하면 나중에 보고서를 볼 수 있습니다. 아래는 그들의 스크린 샷입니다.

인덱스 보고서 :-

이메일로 보낼 수있는 보고서 :-

이제이 Selenium WebDriver 튜토리얼 블로그를 마치겠습니다. 끝에서 이클립스를 설정하고, 다양한 Selenium 패키지를 설치하고, TestNG를 설치하고, 테스트 케이스 작성을 시작할 때입니다.

아래 Selenium WebDriver 튜토리얼 비디오를 확인하여이 블로그에 설명 된 다양한 개념의 데모를 볼 수 있습니다.

셀레늄 교육 | 셀레늄 용 TestNG 프레임 워크 | Edureka

이 Edureka Selenium Training 비디오는 Selenium WebDriver에 대한 심층적 인 세부 정보를 안내합니다. 이 Selenium 튜토리얼 비디오는 WebDriver 명령의 기본 사항을 다듬고 다양한 테스트 사례를 관리하기 위해 Selenium과 함께 TestNG를 사용하는 방법을 배우려는 초보자와 전문가 모두에게 이상적입니다.

Selenium을 배우고 테스트 도메인에서 경력을 쌓고 싶다면 대화 형 라이브 온라인을 확인하십시오. 여기에는 학습 기간 내내 안내하는 연중 무휴 지원이 함께 제공됩니다.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.