Selenium에서 범위 보고서를 생성하는 방법

게시 됨: 2021-06-21

셀레늄에서 테스트 자동화에 사용되는 오픈 소스 라이브러리는 ExtentReports입니다. 테스트 프레임워크; NUnit, JUnit 등을 라이브러리와 통합할 수 있습니다. 내장 보고서는 TestNG 및 JUnit의 프레임워크를 통해 셀레늄에서 생성되지만 Extent 보고서는 여전히 셀레늄 자동화 테스터의 첫 번째 선택입니다. Selenium 범위 보고서 는 자동화 스크립트 실행에 대한 더 많은 통찰력을 제공합니다. 결과는 원형 차트로 표시되며 기본적으로 HTML 문서입니다. 스냅샷과 같은 세부 정보이며 라이브러리를 통해 사용자 정의 로그를 생성할 수 있습니다.

자동화된 테스트가 성공적으로 실행되면 테스터가 테스트 실행 보고서를 생성해야 합니다. 기본 보고서는 TestNG에서 제공하지만 세부 정보는 제공되지 않습니다. ExtentReport API를 적용하면 간단한 구성을 통해 대화형 보고서를 생성할 수 있습니다. JUnit, NUnit, TestNG 등의 Java 및 .Net 프레임워크를 라이브러리에서 지원합니다.

익스텐트 보고서 메이븐 의 종속성

원천

셀레늄 범위 보고서는 두 가지 클래스로 구성됩니다.

목차

1. ExtentReports 클래스

테스터는 경로를 지정하고 지정된 경로에 따라 HTML 보고서가 ExtentReports 클래스에서 생성됩니다. 새 보고서가 생성되거나 기존 보고서를 덮어씁니다. Boolean 값에 따라 결정됩니다. 기본 부울 값은 "true"로 과거에 존재했던 모든 데이터를 덮어씁니다.

2. ExtentTest 클래스

테스트 단계는 위의 방법을 통해 생성된 HTML 보고서에 ExtentTest 클래스를 통해 기록됩니다.

3. 익스텐트 HtmlReporter

이 클래스에 의해 HTML 파일이 생성됩니다.

나열된 내장 함수는 아래 나열된 클래스와 함께 사용할 수 있습니다.

  • startTest: 테스트에서 케이스의 전제 조건이 실행됩니다.
  • endTest: 테스트에서 케이스의 사후 조건이 실행됩니다.
  • 로그 방식: 테스트의 모든 단계의 상태는 로그를 통해 생성된 HTML 보고서에 기록됩니다.
  • 플러시: 이전 보고서의 데이터를 제거하여 새 보고서가 생성됩니다.

PASS, SKIP, FAIL 및 INFO 값은 테스트 상태를 나타내는 데 사용됩니다.

범위 보고서를 만드는 방법

익스텐트 보고서를 생성하기 위한 몇 가지 전제 조건은 다음과 같습니다.

  • Java 사전 설치 및 설정.
  • TestNG 설치.
  • 익스텐트 보고서 항아리(버전 2.41.2) 다운로드.
  • HTML 보고서 구성을 허용하는 extent-config.xml의 요구 사항입니다.

범위 보고서 생성을 위해 따라야 하는 기본 단계는 다음과 같습니다.

  • 테스트 프로젝트가 생성됩니다.
  • 보고서 jar 파일의 범위가 다운로드됩니다.
  • 익스텐트 보고서 jar 파일이 프로젝트에 추가됩니다.
  • 구현된 클래스가 생성됩니다.

범위 보고서 생성 단계

  • 익스텐트 보고서는 익스텐트reports-java-2.41.2.jar인 jar 파일을 임포트하여 셀레늄의 WebDriver에서 생성할 수 있습니다. jar 파일 내용은 다운로드되면 디렉토리로 추출됩니다.
  • 다운로드한 ZIP 파일에서 추출한 Jar 파일을 빌드 프로젝트에 추가합니다. 빌드 경로 -> 빌드 경로 구성 옵션이 사용됩니다.
  • 다음 코드를 통해 보고된 익스텐트에 대해 자바 클래스를 새로 생성한다.

원천

코드 설명

startTest 메소드를 사용하여 테스트 실행이 시작됩니다. 익스텐트 보고서의 개체가 초기화됩니다. 범위 보고서 개체는 전달된 매개변수로 사용자 정의 경로를 사용합니다.

@beforeclass: 익스텐트 보고서의 사용은 코드로 시연됩니다.

@test: 이 클래스를 통해 다음 작업이 자동화됩니다.

  • URL www.google.com 통해 크롬 브라우저 열기
  • 페이지 제목은 열리면 예상한 값으로 유효성을 검사해야 합니다.
  • 테스트 케이스의 상태는 익스텐트 보고 로그 방식을 사용하여 PASS 또는 FAIL로 기록됩니다.

@afterclass: 이 클래스에는 테스트 사후 조건의 경우의 실행을 위한 코드가 포함되어 있습니다. 여기에는 테스트 종료 또는 보고서 플러싱에 대한 코드가 포함됩니다. flush() 메서드를 사용하지 않으면 셀레늄의 범위 보고서 가 생성되지 않습니다.

범위 보고서에서 스크린샷 캡처

1. 캡쳐 방법을 통해

  • 테스트 중에 스크린샷 캡처를 사용하면 몇 가지 이점이 있습니다.
  • 소프트웨어가 잘못 작동하기 시작하면 테스터는 스크린샷을 관찰하여 문제를 식별할 수 있습니다.
  • 따라서 테스트 실행에 문제가 발생하면 화면 캡처를 통해 테스터가 테스트 스크립트를 디버그할 수 있습니다.
  • 캡처에 더 많은 메모리가 사용되므로 스크린샷은 테스트가 실패하는 동안에만 캡처해야 합니다.
  • 스크린샷 캡처에 사용되는 다음 코드는

원천

2. 코드 설명

  • 현재 셀레늄 WebDriver는 getScreenShotAs() 메서드를 통해 스크린샷으로 캡처됩니다. 그런 다음 다양한 형태의 출력으로 저장됩니다.

파일 scrFile = ((TakesScreenshot) 드라이버).getScreenshotAs(OutputType.File);

  • 파일의 객체는 getScreenShotAs 메소드를 통해 반환되어 파일의 변수에 저장된다. 이 방법을 사용하려면 웹 드라이버의 인스턴스를 캐스팅하여 스크린샷을 찍는 것이 필수입니다.

파일 대상 = new File("scr/../Errimages/" + System.currentTimeMillis()+ ".png");

  • 위의 코드를 통해 "src" 폴더 안에 "ErrImages"라는 이름의 폴더가 생성됩니다. 파일은 생성된 폴더에 현재 시스템의 시간을 파일명으로 하여 저장합니다.

문자열 errflpath = 대상, getAbsolutePath();

Fileutils.copyFile(scrFile, 대상);

returnerrflpath;

  • 생성된 오류 이미지는 대상 폴더에 복사됩니다.

3. 로그 방식

  • log 방식은 내장 방식을 사용합니다. Extent 클래스의 addScreenCapture는 스크린샷을 캡처하는 데 사용되며 생성된 범위 보고서에 추가됩니다.

test.log(LogStatus.Fail,test.addScreenCapture(capture(드라이버))+ "테스트 실패");

익스텐트 보고서의 장점

  • 범위 보고서의 사용은 쉽습니다.
  • 파이 차트는 결과를 표시하는 데 사용됩니다.
  • 테스트의 통과 사례 비율이 제공됩니다.
  • 환경의 세부 사항을 자연스럽게 추가하는 능력.
  • 다른 보고서와 비교하여 범위 보고서는 사용자 정의 제공을 제공합니다.
  • 익스텐트 API를 통해 더 많은 대화형 보고서를 생성할 수 있습니다. 대화형 보고서는 그래픽 보기, 모든 테스트 단계 중 스크린샷 캡처, 대시보드 보기 및 이메일로 보낼 수 있는 보고서의 형태일 수 있습니다.
  • JUnit, TestNG 및 NUnit 프레임워크와의 통합이 가능합니다.
  • 모든 병렬 실행에 대한 단일 보고서 생성으로 테스트 실행의 병렬 실행이 가능합니다.
  • 보고서를 구성할 수 있습니다.
  • 모든 테스트 케이스의 실행에 대해 소요된 시간이 표시됩니다.
  • 단일 제품군에서 여러 테스트 사례의 실행을 쉽게 추적할 수 있습니다.
  • 테스트 보고서를 기반으로 결과를 필터링할 수 있습니다. 또한 합격/불합격/정보 옵션을 통해 단계별 결과를 필터링할 수 있습니다.
  • 회귀/기능 등과 같은 범주에 대한 보고서 분류가 제공됩니다.
  • 테스트 단계의 로그를 보고서에 추가할 수 있습니다.

Selenium의 Extent 보고서

익스텐트 리포트 메이븐 의 생성 과정을 이해할 수 있도록 예제를 보여줍니다 .

1단계 : 여기에서 사용 가능한 코드를 추가하여 maven 프로젝트 및 클래스를 생성합니다.

  • HTML 독립 실행형 파일은 'ExtentHtmlReporter' 클래스에서 생성됩니다.
  • 'ExtentHtmlReporter(java.io.File)'는 이 클래스와 'ExtentHtmlReporter(java.lang.String filePath)' 경로에서 허용됩니다.
  • 보고서를 저장하기 위해 파일 경로가 전달됩니다.
  • 'ExtentHtmlReporter' 클래스의 config() 메소드는 다양한 설정 옵션을 허용한다. 타임스탬프, 보고서 이름 등을 포함한 범위 보고서의 모양을 변경하기 위해 코드를 통해 항목을 변경할 수 있습니다.
  • 테스트의 각 단계에 대한 상태는 'AfterMethod'에 의해 보고되며, 이에 따라 테스트의 상태가 Pass, Fail, skip 등으로 업데이트되며, 오류가 발생하면 정보를 제공하는 메시지가 생성됩니다. 'result.getThrowable()'을 통해 수행됩니다.
  • 상태 레이블은 보고서 상태에도 색상을 지정하는 MarkupHelper 클래스를 사용하여 생성됩니다.

2단계: testng.xml 파일을 생성하여 브라우저의 OS 및 매개변수를 전달합니다. 코드는 언급된 웹사이트에서 사용할 수 있습니다.

3 단계: pom.cml 파일에 다른 코드가 추가됩니다.

4단계: 프로그램을 실행 하면 결과 보고서 가 생성 됩니다.

원천

실패 보고서를 보려면 실패한 테스트를 클릭해야 합니다. 테스트 실패 이유와 함께 테스트 상태가 표시됩니다.

범위 보고서와 관련된 몇 가지 추가 사항은 다음과 같습니다.

  • 보고서에 존재하는 테마는 외관상 변경될 수 있습니다.
  • 대시보드 보기는 사용자의 편의에 따라 숨기거나 표시될 수 있습니다.
  • 여러 테스트를 실행하는 경우 테스트 케이스를 단계별로 검색할 수 있습니다.
  • 시작 시간과 종료 시간을 포함하여 테스트를 실행하는 데 걸린 총 시간이 사용자에게 표시됩니다.
  • 보고서에 추가 필터가 있습니다. 결과는 통과된 테스트, 실패한 테스트 또는 정보만 있는 테스트 케이스와 같은 테스트 상태에 따라 필터링할 수 있습니다.

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

사용자 정의 가능한 보고서를 생성하려면 범위 보고서 가 가장 좋습니다. 셀레늄으로 쉽게 구성할 수 있는 오픈 소스 라이브러리이기 때문에 범위 보고서는 확실히 모든 자동화 테스터에게 최고의 선택이 되었습니다. 이 기사에서는 범위 보고서, 보고서 생성 방법 및 유용성에 대해 간략하게 설명했습니다. 익스텐트 보고서 생성의 기초가 되는 소프트웨어 프로그래밍 지식을 통해 이점을 얻을 수 있습니다.

소프트웨어 프로그래밍의 이점을 배우고 탐색하려는 경우 upGrad 에서 제공하는 소프트웨어 개발 - 전체 스택 개발 전문화의 Executive PG 프로그램 과정을 확인하십시오. 이것은 21세에서 45세 사이의 초급 전문가를 위해 특별히 고안된 과정입니다. 온라인 강의 및 실습 경험이 있는 대화형 세션을 위한 플랫폼을 제공하는 이 과정은 최고의 산업에서 배치 보장을 제공합니다. 우리 팀은 모든 질문에 사용할 수 있습니다.

Selenium 보고서 빌더란 무엇입니까?

Selenium Report Builder 또는 Selenium IDE는 Selenium 테스트 사례를 만들고 편집하는 데 도움이 되는 Selenium용 Firefox 플러그인입니다. 자동화 프로세스를 보다 효율적으로 만들고 다양한 보고서를 작성하는 데 필요한 노력을 줄여줍니다. 테스트를 실행하고 현재 상태에 대한 개요를 제공하는 편안한 방법입니다. 보고서는 텍스트, PDF, CSV, HTML 등과 같은 다양한 형식으로 생성됩니다.

Selenium을 사용하여 자동으로 테스트할 수 있는 것은 무엇입니까?

Selenium은 테스트 목적으로 웹 애플리케이션을 자동화하는 도구이며 회귀 테스트에 사용할 수 있습니다. Selenium은 사용자가 브라우저에서 할 수 있는 모든 것을 자동화할 수 있습니다. 대부분의 웹 사이트에는 직원이 재고 주문, 주문 처리, 웹 사이트 업데이트 등과 같은 작업을 보다 쉽게 ​​수행할 수 있는 기능이 있습니다. Selenium은 웹 기반 응용 프로그램 및 웹 사이트를 테스트하는 데 사용할 수 있습니다. JAVA, C# 등 다양한 프로그래밍 언어를 지원하는 고급 언어입니다. Selenium은 브라우저를 자동화하는 데 사용되며 웹 애플리케이션 개발자에게 웹 애플리케이션에 대해 실행할 자동화된 테스트를 작성할 수 있는 기능을 제공합니다.

셀레늄 그리드 란 무엇입니까?

Selenium Grid는 여러 브라우저(또는 다른 그리드 노드)에서 자동화된 테스트를 실행할 수 있는 도구입니다. 여러 구성(위치, 브라우저, 운영 체제)과 여러 브라우저를 동시에 사용하여 이러한 테스트를 병렬로 실행할 수 있습니다. 테스트 자체는 GUI가 전혀 필요하지 않도록 헤드리스 모드에서 실행할 수 있습니다. Grid는 비동기 작업 실행을 제공하며 수백 개의 작업을 동시에 관리할 수 있습니다. 따라서 Selenium 그리드는 테스트 사례를 실행하기 위한 허브 및 스포크 모델입니다. 그리드를 사용하면 사용자가 여러 브라우저를 풀링하여 단일 테스트 사례를 실행할 수 있습니다. 설정이 완료되면 요청 시 또는 일정에 따라 여러 컴퓨터 또는 브라우저에서 테스트를 실행하는 데 사용할 수 있습니다. Selenium Grid는 테스트 실행을 병렬화하고 테스트를 확장하며 테스트 범위를 늘리는 데 사용할 수 있습니다.