오이-특징
ㅏ Feature독립형 단위 또는 프로젝트의 기능으로 정의 할 수 있습니다. 소셜 네트워킹 사이트의 매우 일반적인 예를 들어 보겠습니다. 이 제품 / 프로젝트의 기능은 어떻게 생겼습니까? 몇 가지 기본 기능을 다음과 같이 결정할 수 있습니다.
소셜 네트워킹 사이트에서 사용자를 만들고 제거합니다.
소셜 네트워킹 사이트에 대한 사용자 로그인 기능.
소셜 네트워킹 사이트에서 사진 또는 비디오 공유.
친구 요청을 보내는 중입니다.
Logout.
이제 우리가 Cucumber에 대해 이야기 할 때 테스트중인 제품의 각각의 독립적 인 기능을 기능이라고 할 수 있음이 분명합니다. 나중에 테스트를 시작할 때 테스트 스크립트를 파생하기 전에 테스트 할 기능을 결정하는 것이 가장 좋습니다.
기능에는 일반적으로 해당 기능에 대해 테스트 할 시나리오 목록이 포함됩니다. 기능, 기능에 대한 설명 및 테스트 할 시나리오를 저장하는 파일은Feature File. 다음 장에서 기능 파일에 대해 자세히 살펴 보겠습니다.
Gherkins에서 테스트중인 기능을 나타내는 키워드는 "Feature"입니다. 권장되는 모범 사례는 기능 파일의 기능 제목 아래에 기능에 대한 간단한 설명을 작성하는 것입니다. 이것은 좋은 문서의 필요성도 충족시킬 것입니다.
예
Feature − 소셜 네트워킹 사이트의 로그인 기능.
사용자 이름과 비밀번호가 정확하면 사용자는 소셜 네트워킹 사이트에 로그인 할 수 있어야합니다.
사용자 이름과 암호가 잘못된 경우 사용자에게 오류 메시지가 표시되어야합니다.
사용자 이름과 비밀번호가 올바른 경우 사용자는 홈 페이지로 이동해야합니다.
기능 파일
Cucumber 테스트가 작성된 파일은 다음과 같이 알려져 있습니다. feature files. 테스트중인 각 기능에 대해 별도의 기능 파일이있는 것이 좋습니다. 기능 파일의 확장자는 ".feature"여야합니다.
필요한만큼 많은 기능 파일을 만들 수 있습니다. 체계적인 구조를 가지려면 각 기능에 하나의 기능 파일이 있어야합니다.
예를 들어-
Sr. 아니요 | 특색 | 기능 파일 이름 |
---|---|---|
1 | 사용자 로그인 | userLogin.feature |
2 | 게시물 공유 | sharePost.feature |
삼 | 계정 생성 | createAccount.feature |
4 | 계정 삭제 | deleteAccount.feature |
기능 이름, 기능 파일 이름에 사용할 명명 규칙은 개인의 선택에 따라 다릅니다. Cucumber에는 이름에 대한 기본 규칙이 없습니다.
간단한 기능 파일은 다음 키워드 / 부품으로 구성됩니다.
Feature − 테스트중인 기능의 이름.
Description (선택 사항)-테스트중인 기능에 대해 설명합니다.
Scenario − 테스트 시나리오는 무엇입니까?
Given − 테스트 단계가 실행되기 전 전제 조건.
When − 다음 단계를 실행하기 위해 일치해야하는 특정 조건.
Then − WHEN에 언급 된 조건이 충족되면 어떻게해야합니까?
예
Feature − 소셜 네트워킹 사이트에서 사용자 로그인.
사용자는 사용자 이름과 비밀번호가 정확할 때 소셜 네트워킹 사이트에 로그인 할 수 있어야합니다.
사용자 이름과 암호가 올바르지 않으면 사용자에게 오류 메시지가 표시되어야합니다.
사용자 이름과 암호가 올바른 경우 사용자는 홈 페이지로 이동해야합니다.
Outline − 소셜 네트워킹 사이트의 로그인 기능.
주어진 사용자가 Facebook으로 이동합니다. 사용자 이름을 "<username>"으로 입력하고 Password를 "<password>"로 입력 할 때. 그러면 로그인이 실패해야합니다.
| username | password |
| username1 | password1 |
* AND 키워드는 두 조건 간의 연결을 표시하는 데 사용됩니다. AND 다음과 같은 다른 키워드와 함께 사용할 수 있습니다. GIVEN, WHEN 과 THEN.
기능 파일에 작성된 로직 세부 사항이 없습니다.
단계 정의
테스트 시나리오가 정의 된 기능 파일이 준비되었습니다. 그러나 이것은 완료된 작업이 아닙니다. Cucumber는 기능 파일에 설명 된 특정 시나리오에 대해 어떤 코드가 실행되어야하는지 실제로 알지 못합니다.
이것은 중간 단계 정의 파일이 필요합니다. 단계 정의 파일은 실행할 함수 코드와 함께 기능 파일에 정의 된 시나리오의 각 단계 간의 매핑을 저장합니다.
따라서 이제 Cucumber가 기능 파일에 언급 된 시나리오의 단계를 실행할 때 단계 정의 파일을 스캔하고 어떤 함수가 호출되어야하는지 파악합니다.
단계 정의 파일의 예
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$"
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then"^login should be unsuccessful$"
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
따라서 각 기능과 함께 각 테스트 단계 (예 : GIVEN / THEN / WHEN)에서 실행하려는 코드가 무엇이든 단계 정의 파일 내에 작성할 수 있습니다. 각 단계에 대해 코드 / 기능이 정의되었는지 확인하십시오.
이 함수는 테스트 단계를 자동화하기 위해 Java 및 Selenium 명령을 모두 사용할 수있는 Java 함수일 수 있습니다.