오이-주석
Annotation특정 의미를 포함하는 미리 정의 된 텍스트입니다. 이를 통해 컴파일러 / 통역사가 실행시 무엇을해야하는지 알 수 있습니다. 오이에는 다음과 같은 몇 가지 주석이 있습니다.
Given −
테스트를 실행하기위한 전제 조건을 설명합니다.
예-GIVEN은 Facebook 사용자입니다.
When −
모든 테스트 시나리오 실행에 대한 트리거 지점을 정의합니다.
예- "<사용자 이름>"을 입력 할 때
Then −
그런 다음 실행될 테스트에 대한 예상 결과를 보유합니다.
예-THEN 로그인이 성공해야합니다.
And −
두 문 사이에 논리적 AND 조건을 제공합니다. AND는 GIVEN, WHEN 및 THEN 문과 함께 사용할 수 있습니다.
예- "<username>"을 입력하고 "<password>"를 입력 할 때
But −
두 문 사이의 논리적 OR 조건을 나타냅니다. OR는 GIVEN, WHEN 및 THEN 문과 함께 사용할 수 있습니다.
예-THEN 로그인이 성공해야합니다. 그러나 홈페이지가 누락되어서는 안됩니다.
Scenario −
테스트중인 시나리오에 대한 세부 정보는 키워드 "Scenario :"뒤에 캡처해야합니다.
예-
대본:
저는 Facebook 사용자입니다.
내가 입력 할 때
그리고 나는 나의
그런 다음 로그인이 성공해야합니다.
그러나 홈페이지가 누락되어서는 안됩니다.
Scenario Outline − (나중에 다룰 예정)
Examples − (나중에 다룰 예정)
Background −
배경에는 일반적으로 각 시나리오를 실행하기 전에 무엇을 설정해야하는지에 대한 지침이 있습니다. 그러나 "Before"후크 이후에 실행됩니다 (나중에 다룰 예정). 따라서 이것은 웹 브라우저를 설정하거나 데이터베이스 연결을 설정하려는 경우 코드에 사용하기에 이상적입니다.
예-
배경:
Facebook 홈페이지로 이동합니다.
예제 시나리오
주석을 더 잘 이해하기 위해 시나리오를 자동화합시다.
Step 1
다음과 같은 Maven 테스트 프로젝트를 만듭니다. AnnotationTest.
File → New → Others → Maven → Maven Project → Next로 이동합니다.
그룹 ID를 제공합니다 (그룹 ID는 모든 프로젝트에서 고유하게 프로젝트를 식별합니다).
이슈 ID를 제공합니다 (아티팩트 ID는 버전이없는 jar의 이름입니다. 소문자로 된 이름을 선택할 수 있습니다).
마침을 클릭하십시오.
열다 pom.xml −
Eclipse의 왼쪽에있는 패키지 탐색기로 이동합니다.
AnnotationTest 프로젝트를 펼치십시오.
pom.xml 파일을 찾습니다.
마우스 오른쪽 버튼을 클릭하고 "텍스트 편집기"로 열기 옵션을 선택합니다.
Selenium에 대한 종속성 추가-이것은 Maven을 나타내며, Selenium jar 파일이 중앙 저장소에서 로컬 저장소로 다운로드됩니다.
Open pom.xml이 편집 모드에 있으며 프로젝트 태그 내에 종속성 태그 (<dependencies> </ dependencies>)를 만듭니다.
종속성 태그 내에 종속성 태그 (<dependency> </ dependency>)를 만듭니다.
종속성 태그 내에 다음 정보를 제공하십시오.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
Cucumber-Java에 대한 종속성 추가-이것은 중앙 저장소에서 로컬 저장소로 다운로드 할 Cucumber 파일을 Maven을 나타냅니다.
종속성 태그를 하나 더 만듭니다.
종속성 태그 내에 다음 정보를 제공하십시오.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Cucumber-JUnit에 대한 종속성 추가-이것은 중앙 저장소에서 로컬 저장소로 Cucumber JUnit 파일을 다운로드 할 Maven을 나타냅니다.
종속성 태그를 하나 더 만듭니다.
종속성 태그 내에 다음 정보를 제공하십시오.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
JUnit에 대한 종속성 추가-이것은 중앙 저장소에서 로컬 저장소로 다운로드되는 JUnit 파일 인 Maven을 나타냅니다.
종속성 태그를 하나 더 만듭니다.
종속성 태그 내에 다음 정보를 제공하십시오.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
바이너리를 확인합니다.
pom.xml이 성공적으로 편집되면 저장합니다.
프로젝트 → 정리로 이동-몇 분 정도 걸립니다.
Step 2
아래에 Annotation이라는 패키지를 만듭니다. src/test/java
새로 생성 된 프로젝트를 선택합니다.
마우스 오른쪽 버튼을 클릭하고 '새로 만들기'를 선택합니다.
'패키지'로 옵션을 선택합니다.
'주석'으로 이름을 지정하십시오.
저장해.
Step 3
다음과 같은 기능 파일을 만듭니다. annotation.feature.
패키지 개요를 선택하고 마우스 오른쪽 버튼으로 클릭합니다.
'새로 만들기'파일을 클릭합니다.
파일에 다음과 같은 이름을 지정하십시오. outline.feature.
파일 내에 다음 텍스트를 작성하고 저장하십시오.
Feature: annotation
#This is how background can be used to eliminate duplicate steps
Background:
User navigates to Facebook Given
I am on Facebook login page
#Scenario with AND
Scenario:
When I enter username as "TOM"
And I enter password as "JERRY"
Then Login should fail
#Scenario with BUT
Scenario:
When I enter username as "TOM"
And I enter password as "JERRY"
Then Login should fail
But Relogin option should be available
Step 4
단계 정의 파일을 만듭니다.
패키지 개요를 선택하고 마우스 오른쪽 버튼으로 클릭합니다.
'새로 만들기'파일을 클릭합니다.
파일 이름을 다음과 같이 지정하십시오. annotation.java
파일 내에 다음 텍스트를 작성하고 저장하십시오.
package Annotation;
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 annotation {
WebDriver driver = null;
@Given("^I am on Facebook login page$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter username as \"(.*)\"$")
public void enterUsername(String arg1) {
driver.findElement(By.id("email")).sendKeys(arg1);
}
@When ("^I enter password as \"(.*)\"$")
public void enterPassword(String arg1) {
driver.findElement(By.id("pass")).sendKeys(arg1);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^Login should fail$")
public void checkFail() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test1 Pass");
} else {
System.out.println("Test1 Failed");
}
driver.close();
}
@Then("^Relogin option should be available$")
public void checkRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test2 Pass");
} else {
System.out.println("Test2 Failed");
}
driver.close();
}
}
Step 5
러너 클래스 파일을 만듭니다.
패키지 개요를 선택하고 마우스 오른쪽 버튼으로 클릭합니다.
'새로 만들기'파일을 클릭합니다.
파일에 다음과 같은 이름을 지정하십시오. runTest.java
파일 내에 다음 텍스트를 작성하고 저장하십시오.
package Annotation;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
Step 6
옵션을 사용하여 테스트 실행-
패키지 탐색기에서 runTest.java 파일을 선택하십시오.
마우스 오른쪽 버튼을 클릭하고 옵션을 선택합니다. ‘Run as’
JUnit 테스트를 선택하십시오.
이 클래스 파일을 실행할 때 다음 사항을 관찰 할 수 있습니다.
Facebook은 새 Firefox 웹 브라우저 인스턴스에서 열립니다.
TOM은 사용자 이름 필드에 입력으로 전달됩니다.
JERRY는 암호 필드에 입력으로 전달됩니다.
로그인이 클릭됩니다.
로그인 실패에 대한 메시지가 브라우저에 표시됩니다.
콘솔에서 "Test Pass"가 인쇄 된 것을 볼 수 있습니다.
단계 결과 1. ~ 5. 사용자 이름은 ""로, 암호는 ""로 다시 실행됩니다.