Selenium 과 Cucumber (BDD 프레임워크 튜토리얼)


이 튜토리얼에서는 통합하는 방법을 배우게 됩니다. Cucumber 과 Selenium 웹드라이버.

Cucumber?

Cucumber BDD(Behavior Driven Development)를 지원하는 테스트 접근 방식입니다. Gherkin 언어를 사용하여 간단한 영어 텍스트로 애플리케이션의 동작을 설명합니다.

더 자세히 알아보세요 – https://www.guru99.com/cucumber-tutorials.html

Selenium?

Selenium 자동화 도구입니다 기능 테스트 웹 기반 애플리케이션의. Selenium Java, Ruby, Python C# 등과 같은 다양한 언어를 지원합니다.

더 자세히 알아보세요 – https://www.guru99.com/selenium-tutorial.html

왜 사용 Cucumber 과 Selenium?

Cucumber 그리고 Selenium 두 가지 인기 있는 기술입니다.

대부분의 조직에서 사용하는 Selenium 기능 테스트를 위해. 사용하고 있는 이들 기관은 Selenium, 통합하고 싶습니다 Selenium 과 Cucumber as Cucumber 브랜드 애플리케이션 흐름을 읽고 이해하기 쉽습니다.

Cucumber 도구는 행동 중심 개발 프레임워크를 기반으로 합니다. 다리 역할을 한다 다음 사람들 사이에서:

  1. 소프트웨어 엔지니어 및 비즈니스 분석가.
  2. 수동 테스터 및 자동화 테스터.
  3. 수동 테스터 및 개발자.

Cucumber BDD 프레임워크도 클라이언트가 애플리케이션 코드를 이해하는 데 도움이 됩니다. 일반 텍스트인 Gherkin 언어를 사용하기 때문입니다. 조직의 모든 사람이 소프트웨어의 동작을 이해할 수 있습니다. Gherkin의 구문은 읽고 이해할 수 있는 간단한 텍스트입니다.

Cucumber 과 Selenium

사용을 위한 전제조건 Cucumber 과 Selenium

시작하기 전에 Cucumber Selenium 통합을 위해서는 다음 항목이 필요합니다.

  • Selenium jar 파일:
  • Selenium-서버 독립형

다음에서 다운로드할 수 있습니다. http://www.seleniumhq.org/download/

사용을 위한 전제조건 Cucumber 과 Selenium

Jar 파일의 경우 Cucumber :

  • Cucumber코어
  • Cucumber-html
  • 코베르투라 코드 적용 범위
  • Cucumber-자바
  • Cucumber-준트
  • Cucumber-jvm-deps
  • Cucumber-보고
  • Hamcrest 코어
  • 작은 오이
  • 주닛

다음에서 다운로드할 수 있습니다. https://mvnrepository.com/search?q=Cucumber

파일을 검색하여 하나씩 다운로드해야 합니다.

예를 들어, jar 파일 중 하나를 다운로드하는 방법을 보여 드리겠습니다.Cucumber-핵심."

위의 다운로드 링크를 클릭하세요. 아래 사이트로 리디렉션됩니다. 이제 특정 항아리를 검색하십시오. 즉, 'Cucumber Core'는 아래 스크린샷과 같습니다.

사용을 위한 전제조건 Cucumber 과 Selenium

다음 페이지에서 버전 1.2.2를 클릭하시면,

사용을 위한 전제조건 Cucumber 과 Selenium

다음 화면에서 다운로드를 클릭하여 'Cucumber 코어' jar 파일.

사용을 위한 전제조건 Cucumber 과 Selenium

주의 사항: 귀하의 편의를 위해 Maven에서 다운로드하는 데 필요한 jar 파일을 번들로 묶었습니다. LINK. 시간이 지나면 이러한 jar가 업데이트되어 호환되지 않게 될 수 있습니다. 위에 설명된 방법을 사용하여 다운로드하라는 요청을 받습니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium.

사용 단계를 연구해 봅시다 Cucumber 셀레늄을 단계별로 살펴보겠습니다. 여기서는 3가지 시나리오를 다루겠습니다.

  • 시나리오 1: 콘솔에 텍스트를 인쇄합니다.
  • 시나리오 2: 로그인 자격 증명을 입력하고 값을 재설정합니다.
  • 시나리오 3: Guru99에 로그인 자격 증명을 입력하고 값을 재설정합니다. 3개의 데이터 세트에 대해 이 작업을 수행합니다.

시나리오 1: 콘솔에 텍스트를 인쇄합니다.

이 시나리오에서는 다음을 사용하여 콘솔에 텍스트를 인쇄합니다. Cucumber.

단계 1) 이클립스에서 프로젝트를 생성합니다.

만들기 Java "라는 이름의 프로젝트Cucumber와Selenium” 아래 스크린샷과 같이 표시됩니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

단계 2) 프로젝트에 Jar 파일을 추가합니다.

프로젝트 우클릭 > 속성 선택 > 이동 Java 빌드 경로. 이전에 다운로드한 모든 라이브러리를 추가합니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

단계 3) 기능 파일 생성

기능 파일을 생성하려면 먼저 아래 스크린샷과 같이 기능 폴더를 생성하십시오.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

이제 폴더 이름 'Features'를 입력하고 'Finish' 버튼을 클릭하세요.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

이제 'Features' 폴더에 "MyTest.feature"라는 이름의 기능 파일을 생성합니다. 프로세스는 폴더 생성과 유사합니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

참고 : 다음을 설치해야 할 수도 있습니다. Cucumber Eclipse 이를 작동시키기 위한 플러그인입니다. Goto — 도움말->새 소프트웨어 설치->링크 복사 붙여넣기 http://cucumber.github.io/cucumber-eclipse/update-site/ 설치하다

단계 4) 시나리오를 작성하세요.

아래 줄은 아래와 같이 Gherkin 언어를 사용하여 'MyTest.feature' 파일에 작성됩니다.

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

코드 설명

라인 1) 이 줄에서는 비즈니스 기능을 작성합니다.

라인 2) 이 줄에서는 테스트할 시나리오를 작성합니다.

라인 3) 이 줄에서 전제 조건을 정의합니다.

라인 4) 이 줄에서는 수행해야 할 작업을 정의합니다.

라인 4) 이 줄에서는 예상되는 결과 또는 결과를 정의합니다.

단계 5) Selenium Testrunner 스크립트 작성 Selenium Cucumber 프레임워크 디자인

여기에서는 'TestRunner' 패키지를 만든 다음 그 아래에 'Runner.java' 클래스 파일을 만듭니다.

package TestRunner;		

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

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

위의 Cucumber Java 예제 코드를 실행합니다. 오이 테스트 다음 주석을 사용하여:

@런위드() 주석은 테스트 실행을 시작하기 위한 테스트 실행기 클래스에 대해 알려줍니다.

@오이옵션() 주석은 기능 파일, 단계 정의 등과 같은 오이 테스트의 일부 속성을 설정하는 데 사용됩니다.

TestRunner 파일의 스크린샷.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

단계 6) 단계 정의 스크립트를 생성 중입니다.

이제 여기서 'StepDefinition' 패키지를 만들고 그 아래에 'Steps.java' 스크립트 파일을 만듭니다. 여기서 실제로 테스트를 수행하기 위한 셀레늄 스크립트를 작성합니다. Cucumber 방법.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

위 코드에서는 'Steps'라는 이름으로 클래스가 생성되었습니다. Cucumber 주석은 기능 파일과 매핑하는 데 사용됩니다. 각 주석 방법은 다음과 같이 정의됩니다.

@주어진 주석 정의 방법은 Firefox를 열고 애플리케이션을 시작하는 것입니다.

@언제 사용자 이름과 비밀번호를 입력하는 주석 정의 방법

@그 다음에 자격 증명을 재설정하는 주석 정의 메소드

각 방법에서는 메시지만 인쇄합니다.

아래는 'Steps.java' 스크립트와 프로젝트 트리의 스크린샷입니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

참고 : 단계 정의는 이 오이 방법에서 수행하려는 단계일 뿐입니다.

단계 7) 스크립트를 실행합니다.

사용자는 아래 스크린샷에 표시된 것처럼 테스트 실행기 스크립트, 즉 'Runner.java'에서 이 스크립트를 실행할 수 있습니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

단계 8) 출력을 분석합니다.

Runner.java 스크립트를 실행하면 콘솔에 텍스트가 표시됩니다. 'Steps.java' 스크립트에 정의된 것과 동일한 텍스트입니다.

다음을 이용한 자동화 테스트 Cucumber 과 Selenium

시나리오 2: 로그인 자격 증명을 입력하고 값을 재설정합니다.

여기서는 Guru99 데모 로그인 페이지에 Credential을 입력하고 값을 재설정하겠습니다.

시나리오 2의 경우 'Steps.java' 스크립트만 업데이트하면 됩니다. 여기서는 실제로 아래 단계에 표시된 대로 셀레늄 스크립트를 작성합니다. 먼저 다음을 추가해야 합니다. Selenium jar 파일을 이 프로젝트에 추가하세요.

로그인 자격 증명을 입력하고 값을 재설정하세요.

단계 1) 여기에서는 아래 코드와 스크린샷에 표시된 대로 'Steps.java' 스크립트를 업데이트합니다.

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

위의 셀레늄 스크립트의 스크린샷입니다.

로그인 자격 증명을 입력하고 값을 재설정하세요.

단계 2) 스크립트를 실행합니다.

업데이트 후 Runner.java를 실행합니다.

단계 3) 출력을 분석합니다.

출력에서 다음을 확인할 수 있습니다.

  • 브라우저가 시작되었습니다.
  • Guru99 은행 데모 사이트가 오픈되었습니다.
  • 사용자 이름과 비밀번호는 로그인 페이지에 있습니다.
  • 값을 재설정합니다.

로그인 자격 증명을 입력하고 값을 재설정하세요.

시나리오 3: Guru99에 로그인 자격 증명을 입력하고 값을 재설정합니다. 3개의 데이터 세트에 대해 이 작업을 수행합니다.

여기서는 'Step.java'와 기능 파일을 모두 업데이트해야 합니다.

단계 1) 아래와 같이 기능 파일을 업데이트합니다.

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

로그인 자격 증명을 입력하세요

단계 2) 이제 Step.java 스크립트를 업데이트하세요.

여기서는 매개변수를 전달하는 방법을 업데이트하고 아래 표시된 스크립트를 업데이트했습니다.

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

로그인 자격 증명을 입력하세요

단계 3) 이제 업데이트된 스크립트를 실행하세요.

아래 화면은 스크립트의 성공적인 실행과 각 데이터 세트에 소요된 시간을 보여줍니다.

로그인 자격 증명을 입력하세요

단계 4) 출력을 분석합니다.

출력에서 다음을 확인할 수 있습니다.

아래 출력은 데이터 세트 수, 즉 3개 세트에 대해 반복됩니다.

  • 브라우저가 시작되었습니다.
  • Guru99 은행 데모 사이트가 오픈되었습니다.
  • 사용자 이름과 비밀번호는 로그인 페이지에 있습니다.
  • 값을 재설정합니다.

로그인 자격 증명을 입력하세요

결론

Cucumber 매우 인기 있는 BDD 도구입니다. 기술적인 사람과 비기술적인 사람을 포함한 모든 이해관계자가 읽기 쉽고 이해할 수 있습니다.

Cucumber 통합 가능 Selenium 다음 3단계를 사용하세요

  1. Gherkin 언어를 사용하여 기능과 시나리오를 단계별로 정의하는 기능 파일을 생성합니다.
  2. 테스트러너 파일을 생성합니다. 이 파일에서 우리는 통합했습니다. Cucumber BDD 프레임워크 사용 Selenium. 이 스크립트를 실행합니다.
  3. Creat Step 정의, 이 패키지에 정의된 실제 셀레늄 스크립트입니다.

상세 보기 readmore