Selenium 과 Cucumber (BDD 프레임워크 튜토리얼)
⚡ 스마트 요약
Selenium 과 Cucumber 이는 일반적인 영어 Gherkin 구문과 강력한 행동 주도 개발(BDD) 프레임워크를 결합한 것입니다. Selenium WebDriver 자동화. 이 튜토리얼에서는 필수 조건을 설명하고, 세 가지 실습 시나리오를 통해 기능 파일, 단계 정의 및 TestRunner 클래스를 통합하여 브라우저 테스트를 실행하는 방법을 보여줍니다.

이 튜토리얼에서는 통합하는 방법을 배우게 됩니다. Cucumber 과 Selenium WebDriver를 사용하여 가독성, 유지보수성, 데이터 기반성을 갖춘 행동 주도 개발(BDD) 프레임워크를 구축합니다.
Cucumber?
Cucumber Gherkin은 행동 주도 개발(BDD)을 지원하는 테스트 도구입니다. Gherkin 언어를 사용하여 애플리케이션의 동작을 간단한 영어 텍스트로 설명하므로 프로그래밍 언어를 배우지 않은 사용자도 테스트 명세 작성에 참여할 수 있습니다. 자세한 내용은 Gherkin 웹사이트에서 확인하세요. Cucumber 지도 시간.
Selenium?
Selenium 자동화 도구로 사용됩니다. 기능 테스트 웹 기반 애플리케이션. Selenium 다양한 프로그래밍 언어를 지원합니다. Java루비, PythonC#을 비롯한 다양한 기술을 지원하기 때문에 기술적 배경이 서로 다른 팀에 적합합니다. 더 자세한 내용은 저희 웹사이트에서 확인하세요. Selenium 지도 시간.
왜 사용 하는가? Cucumber 과 Selenium?
Cucumber Selenium 이 두 가지는 가장 널리 채택되고 있는 테스트 기술입니다. 대부분의 조직은 이미 이를 사용하고 있습니다. Selenium 기능 테스트를 위해 계층 구조를 만들고 싶습니다. Cucumber 위에 있기 때문에 Cucumber 애플리케이션 흐름을 쉽게 읽고 이해할 수 있도록 해줍니다..
Cucumber 행동 주도 개발(Behavior Driven Development) 프레임워크를 기반으로 합니다. 다리 역할을 한다 다음 역할들 간의 비교:
- 소프트웨어 엔지니어 및 비즈니스 분석가.
- 수동 테스터 및 자동화 테스터.
- 수동 테스터 및 개발자.
The Cucumber BDD 프레임워크도 고객이 애플리케이션 코드를 이해하는 데 도움이 됩니다. Gherkin 언어를 사용하기 때문입니다. Gherkin 언어는 평문으로 작성되므로 조직 내 누구든 소프트웨어의 동작 방식을 이해할 수 있습니다. Gherkin 구문은 간단하고 읽기 쉬운 영어로 되어 있어 비전문가도 명세를 쉽게 파악할 수 있습니다.
사용을 위한 전제조건 Cucumber 과 Selenium
시작하기 전에 Cucumber-Selenium 통합을 위해서는 다음 항목들이 필요합니다.
Selenium jar 파일:
- Selenium-서버 독립형
다음에서 다운로드하실 수 있습니다. https://www.selenium.dev/downloads/.
Jar 파일 Cucumber:
- Cucumber코어
- Cucumber-html
- Cobertura 코드 커버리지
- Cucumber-자바
- Cucumber-준트
- Cucumber-jvm-deps
- Cucumber-보고
- Hamcrest 코어
- 작은 오이
- JUnit
다음에서 다운로드하실 수 있습니다. https://mvnrepository.com/search?q=Cucumber각 파일을 검색하여 하나씩 다운로드해야 합니다.
예를 들어, 다음은 jar 파일 중 하나를 다운로드하는 방법입니다.Cucumber-core” 라이브러리.
위의 다운로드 링크를 클릭하세요. Maven 리포지토리 사이트로 이동합니다. 이제 특정 jar 파일(이 경우 "Cucumber 아래 스크린샷에 표시된 것처럼 "코어"입니다.
다음 페이지에서 버전 1.2.2를 클릭하세요.
다음 화면에서 다운로드를 클릭하여 파일을 다운로드하세요. Cucumber 핵심 jar 파일:
참고 : 편의를 위해 필요한 Maven jar 파일을 패키지로 묶었습니다. 여기에서 확인하세요이러한 JAR 파일은 시간이 지남에 따라 구식이 되거나 호환되지 않을 수 있으므로 위에서 설명한 방법을 사용하여 직접 다운로드하는 것이 좋습니다.
다음을 이용한 자동화 테스트 Cucumber 과 Selenium
사용 방법을 단계별로 살펴보겠습니다. Cucumber 과 Selenium 단계별로 설명하겠습니다. 여기서는 세 가지 시나리오를 다룰 것입니다.
- 시나리오 1: 콘솔에 텍스트를 인쇄합니다.
- 시나리오 2: 로그인 자격 증명을 입력하고 값을 재설정합니다.
- 시나리오 3: 로그인 자격 증명을 입력하세요 Guru99로 설정하고 값을 초기화합니다. 이 과정을 3세트의 데이터에 대해 반복합니다.
시나리오 1: 콘솔에 텍스트 출력
이 시나리오에서는 콘솔에 텍스트를 출력하기만 하면 됩니다. Cucumber.
단계 1) 프로젝트를 생성하세요 Eclipse.
만들기 Java 프로젝트 이름 "Cucumber와Selenium" 아래 스크린 샷을 참조하십시오.
단계 2) jar 파일을 프로젝트에 추가하세요.
프로젝트를 마우스 오른쪽 버튼으로 클릭 > 속성 > Java 빌드 경로. 이전에 다운로드한 모든 라이브러리를 추가하세요.
단계 3) 피처 파일을 생성합니다.
피처 파일을 생성하려면 먼저 아래 스크린샷과 같이 Features 폴더를 생성하십시오.
폴더 이름으로 "Features"를 입력하고 마침을 클릭합니다.
이제 Features 폴더 안에 기능 파일을 생성하세요. MyTest.feature이 과정은 폴더를 만드는 것과 유사합니다.
참고 : 다음을 설치해야 할 수도 있습니다. Cucumber Eclipse 먼저 플러그인을 설치하세요. 도움말 → 새 소프트웨어 설치로 이동하여 링크를 붙여넣으세요. http://cucumber.github.io/cucumber-eclipse/update-site/설치하십시오.
단계 4) 시나리오를 작성하세요.
아래 줄은 다음과 같이 쓰여 있습니다. MyTest.feature Gherkin 언어를 사용하여:
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
Code 설명
라인 1) 비즈니스 기능을 정의합니다.
라인 2) 테스트할 시나리오를 정의합니다.
라인 3) 전제 조건(주어진 조건)을 정의합니다.
라인 4) 수행할 동작(시기)을 정의합니다.
라인 5) 예상되는 결과 또는 성과를 정의합니다(그러면).
단계 5) 쓰기 Selenium TestRunner 스크립트 Cucumber 프레임워크 설계.
만들기 테스트러너 포장한 다음 러너.자바 그 아래에 클래스 파일이 있습니다.
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 예를 들어, 우리는 실행합니다 오이 테스트 다음 주석을 사용하여:
@런위드() 말하다 JUnit 테스트 실행을 시작하는 테스트 러너 클래스에 대한 설명입니다.
@Cucumber옵션() 피처 파일 경로 및 스텝 정의 글루 패키지와 같은 테스트 속성을 설정합니다.
TestRunner 파일의 스크린샷:
단계 6) 단계 정의 스크립트를 생성합니다.
이제 단계 정의 포장한 다음 단계.java 그 아래에 스크립트 파일이 있습니다. Steps.java 파일 안에 다음 내용을 작성합니다. Selenium 각 Gherkin 단계에 매핑되는 로직입니다.
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 어노테이션은 각 메서드를 피처 파일 단계에 매핑합니다.
@주어진 열기 위한 방법을 정의합니다. Firefox 그리고 애플리케이션을 실행하세요.
@언제 사용자 이름과 비밀번호를 입력하는 방법을 정의합니다.
@그 다음에 자격 증명을 재설정하는 방법을 정의합니다.
각 메서드는 단순히 콘솔에 메시지를 출력합니다.
아래 스크린샷은 Steps.java 스크립트와 프로젝트 트리를 보여줍니다.
참고 : 단계 정의는 여러분이 원하는 코드입니다. Cucumber 기능 파일 단계와 일치할 때 실행됩니다.
단계 7) 스크립트를 실행합니다.
아래와 같이 TestRunner 파일(Runner.java)에서 이 스크립트를 실행하세요.
단계 8) 출력을 분석합니다.
Runner.java를 실행하면, Cucumber Steps.java에 정의된 텍스트를 콘솔에 출력합니다.
시나리오 2: 로그인 자격 증명을 입력하고 값을 재설정합니다.
여기에 자격 증명을 입력합니다. Guru99 데모 로그인 페이지에서 값을 재설정합니다.
시나리오 2의 경우 업데이트만 하면 됩니다. 단계.java여기에 실제를 추가합니다. Selenium 코드입니다. 먼저, 다음 사항을 확인하십시오. 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();
}
}
위의 스크린샷 Selenium 스크립트:
단계 2) 스크립트를 실행합니다.
Steps.java를 업데이트한 후 Runner.java를 실행하세요.
단계 3) 출력 결과를 분석하세요. 출력 결과에는 다음과 같은 내용이 표시됩니다.
- 브라우저가 시작되었습니다.
- Guru99뱅크 데모 사이트가 오픈했습니다.
- 사용자 이름과 비밀번호는 로그인 페이지에 입력합니다.
- 리셋 버튼은 값을 초기화합니다.
시나리오 3: 3개의 데이터 세트를 사용하여 로그인 및 재설정 흐름 실행
여기서는 두 가지 모두 업데이트해야 합니다. 단계.java 그리고 기능 파일은 세 가지 자격 증명 세트를 사용하여 동일한 흐름을 실행합니다.
단계 1) 아래와 같이 기능 파일을 업데이트하십시오.
우리는을 사용하여 시나리오 개요 예 구문은 다음과 같습니다. Cucumber 각 데이터 행에 걸쳐 동일한 시나리오를 반복합니다.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
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 |
단계 2) Steps.java 스크립트를 업데이트하세요.
여기서는 메서드 시그니처를 업데이트하여 Examples 테이블의 매개변수를 받도록 합니다.
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(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뱅크 데모 사이트가 오픈했습니다.
- 사용자 이름과 비밀번호는 로그인 페이지에 입력합니다.
- 리셋 버튼은 값을 초기화합니다.























