자동화테스트/Selenium2019. 1. 10. 08:00

셀레늄과 함께 cucumber 사용

튜토리얼에서는 Cucumber Selenium Webdriver 통합하는 방법을 학습합니다.

cucumber 무엇입니까?

cucumber 행동 주도 개발 (Behavior Driven Development, BDD) 지원하는 테스트 접근법입니다. Gherkin 언어를 사용하여 간단한 영어 텍스트로 응용 프로그램의 동작을 설명합니다.

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

셀레늄이란 무엇입니까?

Selenium  기반 애플리케이션의 기능 테스트  위한 자동화 도구입니다 . 셀레늄은 자바, 루비, 파이썬 C # 등과 같은 다른 언어를 지원합니다.

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

튜토리얼에서는,

Selenium 함께 cucumber 사용하는 이유는 무엇입니까?

cucumber 셀레늄은 가지 유명한 기술입니다.

대부분의 조직에서는 Selenium 기능 테스트에 사용합니다. Selenium 사용하는 이러한 조직에서는 Cucumber 사용하여 Cucumber 셀렌과 통합하고자 하므로 Cucumber 응용 프로그램 흐름을 읽고 이해하기 쉽습니다.

cucumber 도구는 다음 사람들 간의 다리 역할  하는 행동 주도 개발 프레임 워크를 기반으로 합니다 .

1.     소프트웨어 엔지니어 비즈니스 분석가.

2.     수동 시험기 자동화 시험기.

3.     수동 테스터 개발자.

cucumber 일반 텍스트로 Gherkin 언어를 사용하므로 클라이언트가 응용 프로그램 코드를 이해하는  에도 도움이 됩니다 . 조직의 모든 사람이 소프트웨어의 동작을 이해할 있습니다. Gherkin 구문은 읽기 쉽고 이해하기 쉬운 간단한 텍스트로 되어 있습니다.

Selenium 함께 cucumber 사용하기 위한 전제 조건.

셀레늄과 통합 cucumber 시작하기 전에 다음 항목이 필요합니다.

셀레늄 항아리 파일 :

  • Selenium-server-standalone

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

cucumber 위한 Jar 파일 :

  • Cucumber-core
  • Cucumber-html
  • cobertura code coverage
  • Cucumber-java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-reporting
  • Hemcrest-core
  • Gherkin
  • Junit

http://mvnrepository.com/search?q=Cucumber 에서 다운로드 있습니다 .

파일을 검색하고 개별적으로 하나씩 다운로드해야 합니다.

예를 들어 jar 파일 하나 "Cucumber-core" 다운로드하는 방법을 보여줍니다.

위의 다운로드 링크를 클릭하십시오아래 사이트로 리디렉션 됩니다아래 그림과 같이 특정 , 'Cucumber Core' 검색하십시오 :

다음 페이지에서 버전 1.2.2 클릭하고,

다음 화면에서 'Cucumber Core'jar 파일을 다운로드 하려면 다운로드를 클릭하십시오.

참고 : 쉽게 Maven 에서 다운로드해야하는 jar 파일을 번들로 제공합니다 . 시간이 지나면 이러한 항아리가 업데이트되어 호환되지 않을 있습니다위에서 설명한 방법을 사용하여 다운로드해야 합니다.

셀레늄과 함께 cucumber 이용한 자동화 테스트.

셀레늄과 함께 단계적으로 cucumber 사용하는 단계를 연구합시다여기에서는 3 가지 시나리오를 다룹니다.

  • 시나리오 1 : 콘솔에서 텍스트를 인쇄하십시오.
  • 시나리오 2 : 로그인 자격 증명을 입력하고 값을 재설정하십시오.
  • 시나리오 3 : Guru99 로그인 자격 증명을 입력하고 값을 재설정하십시오. 3 세트의 데이터에 대해 이렇게 하십시오.

시나리오 1 : 콘솔에서 텍스트를 인쇄하십시오.

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

1 단계) 이클립스에서 프로젝트를 만듭니다.

아래 스크린 샷과 같이 "CucumberWithSelenium"이라는 이름으로 자바 프로젝트를 생성하십시오.

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

프로젝트> 속성 선택> Java 빌드 경로로 이동하십시오이전에 다운로드 모든 라이브러리를 추가하십시오.

3 단계) 기능 파일 생성

다음 그림과 같이 기능 파일을 생성하려면 먼저 기능 폴더를 만듭니다.

이제 '기능'폴더 이름을 입력하고 '마침'버튼을 클릭하십시오.

이제 'Features'폴더에 "MyTest.feature"라는 이름으로 feature 파일을 만듭니다. - 프로세스는 폴더를 만드는 것과 비슷합니다.

참고 : Cucumber Eclipse Plugin 설치해야 작동 있습니다. Goto - Helps -> Install New Software-> copy http://cucumber.github.io/cucumber-eclipse/update-site/ 링크를 붙여넣고 설치하십시오.

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

아래 라인은 Gherkin 언어를 사용하여 'MyTest.feature'파일에 기록됩니다.

 

기능 : 응용 프로그램의 로그인 페이지에서 기능 재설정

 

시나리오 : 재설정 버튼 확인

 

주어진 Firefox 열고 응용 프로그램을 시작하십시오                                        

 

사용자 이름 암호 입력시                                  

 

그런 다음 자격 증명 재설정                                  

코드 설명

1 ) 우리는 비즈니스 기능을 작성합니다.

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

3 ) 선에서는 전제 조건을 정의합니다.

Line 4) 줄에서는 우리가 수행해야 행동을 정의합니다.

라인 4) 라인에서 우리는 예상 결과 또는 결과를 정의합니다.

5 단계) selenium testrunner 스크립트 작성하기.

여기서는 '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 테스트를 실행합니다.

@RunWith () 주석은 테스트를 실행하기 시작할 테스트 러너 클래스에 대해 알려줍니다.

@CucmberOptions () 주석은 피처 파일, 단계 정의 등과 같은 cucumber 테스트의 일부 속성을 설정하는 사용됩니다.

TestRunner 파일의 스크린 .

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.");                                                                       
    }                          
 
}

 위의 코드에서 클래스는 '단계'라는 이름으로 생성됩니다. cucumber 주석은 피쳐 파일과 매핑하는 사용됩니다 주석 메소드는 다음과 같이 정의됩니다.

@Given annotation firefox 열고 애플리케이션을 시작하는 메소드를 정의합니다.

@ When  annotation 사용자 이름과 암호를 입력하는 방법을 정의합니다.

@ Then annotation 자격 증명을 재설정하는 메소드를 정의합니다.

방법에 따라 메시지 인쇄합니다.

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

참고 : 단계 정의는 cucumber 방법으로 수행하려는 단계뿐입니다.

7 단계) 스크립트 실행.

사용자는 아래의 스크린 샷과 같이 Runner 스크립트 ( : Runner.java) 실행하여 스크립트를 실행할 있습니다.

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

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

시나리오 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 통합 있습니다.

1.     Gherkin 언어를 사용하여 기능 시나리오를 단계별로 정의하는 기능 파일을 만듭니다.

2.     Testrunner 파일을 만듭니다 파일에는 Cucumber Selenium 통합했습니다우리는 스크립트를 실행합니다.

3.     Creat Step 정의, 패키지에 정의 실제 셀렌 스크립트.

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터