guide generate extent reports selenium webdriver
Selenium WebDriver에서 익스텐트 보고서를 생성하는 방법 :
Selenium은 JUnit 및 TestNG와 같은 프레임 워크를 사용하여 내장 된 보고서를 제공합니다.
기본 제공 보고서는 테스트 케이스의 일부로 실행되는 단계에 대한 정보를 제공하지만 모든 주요 프로젝트 이해 관계자와 공유하려면 더 많은 사용자 정의가 필요합니다.
Extent Reports는 Anshoo Arora에서 개발 한 사용자 정의 가능한 HTML 보고서로 JUnit 및 TestNG 프레임 워크를 사용하여 Selenium WebDriver에 통합 할 수 있습니다.
이 튜토리얼은 예제 코드와 함께 Selenium WebDrive에서 Extent Report를 생성하는 방법에 대한 완전한 단계별 가이드를 제공합니다.
다음은 TestNG 프레임 워크에서 제공하는 내장 보고서의 스냅 샷입니다.
Extent Reports는 JUnit 및 TestNG를 통해 생성되는 내장 보고서와 비교할 때 모든 테스트 단계에서 파이 차트 표현, 테스트 단계적 보고서 생성, 스크린 샷 추가 등과 같이 여러 가지 이점을 제공하며 공유 할 수있는 사용자 인터페이스를 제공합니다. 프로젝트의 모든 이해 관계자.
아래는 원형 차트 표현의 샘플 범위 보고서의 스냅 샷입니다.
(노트 :확대 된 이미지를 클릭하십시오)
학습 내용 :
- 익스텐트 보고서 사용의 장점
- Selenium Webdriver에서 익스텐트 보고서 사용
- Extent 보고서의 샘플 코드
- 테스트 요약 보고서
- 원형 차트 그래픽 보고서
- 익스텐트 보고서에서 스크린 샷 캡처
- 결론
- 추천 도서
익스텐트 보고서 사용의 장점
Extent Reports에는 몇 가지 장점이 있으며 그 중 몇 가지는 아래에서 설명합니다.
- 단계별 및 원형 차트 표현이있는 사용자 정의 가능한 HTML 보고서.
- 보고서 내에서 테스트 케이스 실행에 소요 된 시간을 표시합니다.
- 각 테스트 단계는 스크린 샷과 연결될 수 있습니다.
- 단일 스위트 내에서 실행되는 여러 테스트 케이스를 쉽게 추적 할 수 있습니다.
- TestNG 및 JUnit 프레임 워크와 쉽게 통합 할 수 있습니다.
Selenium Webdriver에서 익스텐트 보고서 사용
익스텐트 보고서에는 자주 사용되는 두 가지 주요 클래스가 있습니다.
- ExtentReports 클래스
- ExtentTest 클래스
통사론:
ExtentReports reports = new ExtentReports ( '결과 HTML 파일을 저장할 디렉토리 경로', true / false);
Windows 10 용 최고의 드라이버 소프트웨어
ExtentTest 테스트 = reports.startTest ( 'TestName');
Extent Reports 클래스는 사용자가 지정한 경로에 HTML 보고서를 생성하는 데 사용됩니다. 부울 플래그는 기존 보고서를 덮어 써야하는지 또는 새 보고서를 만들어야하는지 여부를 나타냅니다. 'true'값은 기본값이며 기존 데이터를 모두 덮어 쓰는 것을 의미합니다.
Extent Test 클래스는 생성 된 HTML 보고서에 테스트 단계를 기록하는 데 사용됩니다.
위의 클래스는 아래에 설명 된 자주 사용되는 내장 메서드와 함께 사용할 수 있습니다.
- startTest
- endTest
- 로그
- 플러시
startTest 및 endTest 메서드는 테스트 케이스의 전제 조건 및 사후 조건을 실행하는 데 사용되는 반면 log 메서드는 각 테스트 단계의 상태를 결과 HTML 보고서에 기록하는 데 사용됩니다. 플러시 방법은 보고서의 이전 데이터를 지우고 새 보고서를 만드는 데 사용됩니다.
테스트 상태는 다음 값 중 하나 일 수 있습니다.
- 통과하다
- 불합격
- 건너 뛰기
- 정보
통사론:
reports.endTest ();
test.log (LogStatus.PASS,”테스트 통과”);
test.log (LogStatus.FAIL,”테스트 실패”);
test.log (LogStatus.SKIP,”Test Skipped”);
test.log (LogStatus.INFO,”테스트 정보”);
Log 메서드는 두 개의 매개 변수를받습니다. 첫 번째 매개 변수는 테스트 상태이고 두 번째 매개 변수는 결과 보고서에 인쇄 할 메시지입니다.
Extent 보고서의 샘플 코드
다음은 Junit의 Selenium Webdriver에서 Extent Reports를 사용하는 일련의 단계입니다.
1 단계:
Extent Reports는 JAR 파일 (extentreports-java-2.41.2.jar)을 가져 와서 selenium WebDriver에서 직접 사용할 수 있습니다. 여기에서 다운로드 .
ZIP 파일이 다운로드되면 ZIP 파일의 내용을 폴더에 추출합니다.
2 단계:
옵션을 사용하여 ZIP 파일에있는 jar 파일을 프로젝트 빌드 경로에 추가합니다. 빌드 경로-> 빌드 경로 구성.
3 단계 :
Extent Reports에 대한 아래 코드를 사용하여 새 JAVA 클래스를 만듭니다.
package com.objectrepository.demo; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.relevantcodes.extentreports.ExtentReports; import com.relevantcodes.extentreports.ExtentTest; import com.relevantcodes.extentreports.LogStatus; public class ExtentDemo { static ExtentTest test; static ExtentReports report; @BeforeClass public static void startTest() { report = new ExtentReports(System.getProperty('user.dir')+'\ExtentReportResults.html'); test = report.startTest('ExtentDemo'); } @Test public void extentReportsDemo() { System.setProperty('webdriver.chrome.driver', 'D:\SubmittalExchange_TFS\QA\Automationrdparty\chrome\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.get('https://www.google.co.in'); if(driver.getTitle().equals('Google')) { test.log(LogStatus.PASS, 'Navigated to the specified URL'); } else { test.log(LogStatus.FAIL, 'Test Failed'); } } @AfterClass public static void endTest() { report.endTest(test); report.flush(); } }
코드 설명
@BeforeClass :
위의 코드는 Extent Reports의 사용을 보여줍니다. 테스트 케이스 실행은 Extent Reports 개체의 초기화를 포함하는 startTest 메서드로 시작됩니다. Extent Reports 개체에 전달 된 매개 변수는 유효한 사용자 정의 경로 일 수 있습니다.
간단하게하기 위해 예 현재 프로젝트 디렉토리를 사용하여 결과 HTML 보고서를 생성합니다. 다음 문은 startTest 메서드의 반환 값을 사용하여 ExtentTest 개체를 초기화하는 것입니다.
@테스트:
테스트 클래스에는 다음 단계가 포함됩니다.
xbox one x 용 vr 헤드셋
- 이 URL https://www.google.com으로 Chrome 브라우저를 엽니 다.
- 페이지가 열리면 예상 값으로 페이지 제목을 확인합니다.
- Extent Reports의 로그 방법을 사용하여 테스트 케이스 상태를 PASS / FAIL로 기록합니다.
@방과후:
After 클래스에는 endTest 메서드를 사용하여 테스트를 종료하고 보고서를 플러시하는 것과 같은 테스트 케이스의 사후 조건을 실행하는 코드가 포함되어 있습니다. flush () 메서드를 사용하지 않으면 보고서가 생성되지 않습니다.
티 요약 보고서입니다.
원형 차트 그래픽 보고서
익스텐트 보고서에서 스크린 샷 캡처
테스트 실행과 함께 화면 캡처는 테스트 실행 중에 문제가 발생하는 경우 테스터가 테스트 스크립트를 디버깅하는 데 도움이됩니다. 그러나 다음과 같이하는 것이 좋습니다. 스크린 샷 캡처 모든 테스트 단계에서 캡처 된 경우 이미지가 더 많은 메모리를 소비하므로 테스트 단계가 실패하는 경우에만 가능합니다.
아래 코드를 사용하여 실패한 각 단계에 대한 스크린 샷을 캡처 할 수 있습니다.
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ 'Test Failed'); public static String capture(WebDriver driver) throws IOException { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File Dest = new File('src/../ErrImages/' + System.currentTimeMillis() + '.png'); String errflpath = Dest.getAbsolutePath(); FileUtils.copyFile(scrFile, Dest); return errflpath; }
코드 설명
캡처 방법 :
#1) getScreenShotAs () 메서드는 현재 WebDriver 인스턴스의 스크린 샷을 캡처하고 다양한 출력 형식으로 저장하는 데 사용됩니다.
파일 scrFile = ((TakesScreenshot) 드라이버) .getScreenshotAs (OutputType.FILE);
#두) getScreenShotAs 메소드는 파일 변수에 저장해야하는 파일 객체를 반환합니다. 방법을 사용하려는 경우 웹 드라이버 인스턴스를 스크린 샷 찍기로 캐스팅하는 것은 필수입니다.
#삼) 파일 대상 = new File ( 'src /../ ErrImages /'+ System.currentTimeMillis () + '.png');
# 4) 위의 문은‘src’폴더 내에‘ErrImages’라는 폴더를 생성하고 파일 이름을 현재 시스템 시간으로 저장합니다.
# 5) 문자열 errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
returnerrflpath;
# 6) 위의 명령문은 오류 이미지를 대상 폴더에 복사합니다.
로그 방법 :
Log 메소드는 내장 메소드 인 Extent Test 클래스의 addScreenCapture를 사용하여 스크린 샷을 가져 와서 Extent 보고서에 추가합니다.
test.log (LogStatus.FAIL, test.addScreenCapture (capture (driver)) +“테스트 실패”);
로그 방식에 기록되는 메시지는 디버깅 목적으로 예상되는 결과와 실제 결과를 포함한 세부 메시지를 포함 할 수 있습니다.
산출:
기본 게이트웨이에 연결할 수 없습니다.
결론
Extent Reports는 Selenium 웹 드라이버에서 만족스러운 사용자 인터페이스를 사용하여 사용자 정의 가능한 HTML 보고서를 생성하는 최고의 기본 제공 방법 중 하나입니다.
Selenium으로 쉽게 구성 할 수있는 오픈 소스 라이브러리이므로 자동화 테스터에게 최고의 선택입니다.
지금 Extent Reports에 대한 명확한 아이디어를 얻었기를 바랍니다.
추천 도서
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 첫 번째 WebDriver 스크립트 구현 – Selenium WebDriver Tutorial # 10
- 셀레늄 FAQ
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- Selenium WebDriver의 암시 적 및 명시 적 대기 (Selenium 대기 유형)
- 다양한 인기 브라우저에서 Selenium WebDriver를 실행하는 방법
- Eclipse로 WebDriver 전체 설정 및 설치 – Selenium Tutorial # 9