오이-보고서

우리는 제품의 안정성을 이해하기 위해 테스트 실행을하므로 수동 테스트 든 자동화 된 테스트 든 제품의 안정성을 설명 할 수있는 간결한 보고서를 생성하는 것이 매우 중요합니다. 따라서 Cucumber로 테스트 시나리오를 자동화하는 동안 Cucumber 테스트 보고서를 얼마나 더 잘 생성 할 수 있는지 아는 것이 중요합니다. Cucumber가 BDD 프레임 워크라는 것을 알고 있듯이 멋진보고 메커니즘이 없습니다.

이를 위해서는 Cucumber를 Ant / Junit과 같은 다른 오픈 소스 도구와 통합해야합니다. 여기서는 Java 언어를 지원하기 때문에 JUnit의 예를 더 살펴 보겠습니다.

사용 가능하고 사용하기 쉬운 다양한 보고서 형식에 대해 자세히 살펴 보겠습니다.

예쁜 형식 (HTML 보고서)

Pretty Format은 HTML 형식, 즉 HTML 파일로 Cucumber 테스트 보고서를 생성합니다. 가장 읽기 쉬운 보고서 형식입니다. 기능 파일과 동일한 방식으로 보고서를 생성하므로 추적도 용이합니다. 또한 테스트 실행 후이 보고서를 배치 할 위치를 지정할 수 있습니다. 그것은 될 수 있습니다-

  • Local Directory − 테스트를 실행할 컴퓨터의 로컬 디렉터리로 보고서 대상 디렉터리를 지정할 수 있습니다.

  • Server Directory− 또한 공개적으로 액세스 할 수있는 서버의 디렉토리로 대상 디렉토리를 지정하는 규정이 있습니다. 이는 일반적으로 고객 / 이해 관계자가 특정 시점에서 테스트 결과를보기를 원할 때 도움이됩니다.

예쁜 형식의 예를 자동화 해 보겠습니다.

Step 1 − 이름이 Maven 프로젝트 생성 cucumberReport Eclipse에서.

Step 2 − 이름이 지정된 패키지 생성 CucumberReport 아래에 src/test/java

Step 3 − 이름이 지정된 기능 파일을 생성합니다. cucumberReport.feature

파일 내에 다음 텍스트를 작성하고 저장하십시오.

Feature − 오이 보고서

#Pass test case에 대한 테스트 결과 확인

Scenario: 로그인 기능이 있습니다.

내가 브라우저를 열었을 때

Facebook 웹 사이트를 열 때

그러면 로그인 버튼이 있어야합니다.

#Failed 테스트 케이스 테스트 결과 확인

Scenario: 비밀번호 분실

내가 브라우저를 열었을 때

Facebook 웹 사이트를 열 때

그런 다음 비밀번호 찾기 링크가 있어야합니다.

Note− 여기서 시나리오는 먼저 통과하고 두 번째 시나리오는 실패합니다. 통과 및 실패 보고서가 어떻게 보이는지 확인할 수 있습니다.

Step 4 − 단계 정의 파일을 생성합니다.

  • 패키지 개요를 선택하고 마우스 오른쪽 버튼으로 클릭합니다.

  • '새로 만들기'파일을 클릭합니다.

  • 파일 이름을 다음과 같이 지정하십시오. cucumberReport.java

  • 파일 내에 다음 텍스트를 작성하고 저장하십시오.

package CucumberReport;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberReport { 
   WebDriver driver = null; 
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

Step 5 − 러너 클래스 파일을 생성합니다.

  • 이름이 지정된 러너 클래스를 만듭니다. runTest.java 패키지 내부.

  • 다음 코드를 작성하십시오. 파일을 저장하십시오.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
	
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project. 

public class runTest { }
  • 옵션을 사용하여 테스트 실행

    • 고르다 runTest.java 패키지 탐색기의 파일.

    • 마우스 오른쪽 버튼을 클릭하고 옵션을 선택합니다. Run as.

    • JUnit 테스트를 선택하십시오.

이 클래스 파일을 실행할 때 다음 사항을 관찰합니다.

두 시나리오 모두 하나씩 실행됩니다.

대상 디렉터리 내에 대상이라는 폴더가 생성됩니다.

보고서는 "Index.html"로 이름이 지정됩니다.

웹 브라우저로 Index.html을 엽니 다.

다음 이미지에 언급 된 보고서를 볼 수 있습니다.

실패한 시나리오의 색상을 정확하게 강조합니다. 또한 해당 시나리오에서 실패한 단계에 대한 강조 표시가 표시됩니다. 이것은 디버깅을 매우 쉽게 만듭니다.

JSON 보고서

지금까지 HTML 보고서가 얼마나 쉬운 지 보았습니다. 그러나이 보고서 정보를 다른 응용 프로그램에 전달하려는 경우 HTML 보고서의 경우 다소 까다 롭습니다. 여기에 또 다른보고 형식이 필요합니다. JSON-Java 스크립트 개체 표기법은 Cucumber 테스트 보고서를 생성하는 또 다른 형식입니다. JSON은 텍스트 형식으로 저장된 많은 정보를 포함하는 객체입니다. JSON 보고서는 테이블에 다른 값을 가져옵니다. JSON 보고서는 다른 서버간에 전송할 정보의 페이로드로도 사용할 수 있습니다. 또한 웹 페이지로 표시하는 데 사용할 수 있습니다. 요컨대, JSON 보고서는 다른 애플리케이션에서 사용할 수 있습니다.

What is payload information?인터넷을 통해 데이터를 전송할 때 전송되는 각 단위에는 헤더 정보와 전송중인 실제 데이터가 모두 포함됩니다. 헤더는 패킷의 소스와 목적지를 식별하는 반면 실제 데이터는 페이로드라고합니다. JSON 보고서를 생성하려면 러너 파일을 변경하기 만하면됩니다.

  • 다음과 같이 러너 파일의 형식 옵션을 변경합니다.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

public class runTest {}
  • 옵션을 사용하여 테스트 실행-

    • 고르다 runTest.java 패키지 탐색기의 파일.

    • 마우스 오른쪽 버튼을 클릭하고 옵션을 선택하십시오. Run as.

    • JUnit 테스트를 선택하십시오.

  • 이 클래스 파일을 실행할 때 다음 사항을 관찰합니다.

    • 두 시나리오 모두 하나씩 실행됩니다.

  • 보고서는 다음과 같이 명명됩니다. cucumber.json (러너 클래스에서 제공됨).

  • 열다 cucumber.json 텍스트 편집기로 파일.

  • 줄 바꿈을 배치 한 후 다음 스크린 샷에 언급 된 보고서를 볼 수 있습니다.

Note − JSON은 HTML 보고서 형식에 비해 가독성이 떨어집니다.