오이-데이터 테이블

자동화 작업을하는 동안 우리는 다양한 시나리오에 직면 할 수 있습니다. 각 시나리오는 서로 다른 의미와 요구를 전달합니다.

처음부터 우리는 소셜 네트워킹 사이트에 대한 로그인 기능의 예를 들어 왔습니다. 여기서 두 개의 입력 매개 변수를 전달했습니다. 더 많은 가능성을 생각해 봅시다. "새 사용자 등록"기능은 어떻습니까? 일반적으로 소셜 네트워킹 사이트에 새 사용자를 등록하는 동안 입력 매개 변수는 무엇입니까? 다음과 같은 것-

  • 사용자 이름
  • 이메일 주소
  • Password
  • 비밀번호를 다시 입력하세요
  • Birthdate
  • Gender
  • 전화 번호

Feature − 신규 사용자 등록.

잘못된 입력을 전달한 후 새 사용자 등록이 실패했는지 확인하십시오.

새 사용자 등록 페이지에 있습니다.

사용자 이름과 이메일 주소를 이메일 주소와 비밀번호로 입력하고 비밀번호와 생년월일, 성별, 전화 번호를 다시 입력하면 사용자 등록이 실패합니다.

언뜻보기에 약간 지저분 해 보입니다. 그렇다면 이러한 입력 청크를 관리하는 더 좋은 방법이 있습니까? 답은 "데이터 테이블"이 될 수 있습니다. 데이터 테이블은 단일 태그에 제공되는 입력 세트입니다. 이 태그는 GIVEN, WHEN 또는 THEN 일 수 있습니다.

데이터 테이블을 사용하여 위의 시나리오를 작성하면 다음과 같습니다.

새 사용자 등록 페이지에있는 경우

페이지에 유효한 데이터를 입력 할 때

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

그러면 사용자 등록이 성공해야합니다.

데이터 테이블의 예를 자동화 해 보겠습니다.

Step 1 − "DataTableTest"라는 이름의 Maven 테스트 프로젝트를 생성합니다.

  • File → New → Others → Maven → Maven Project → Next로 이동합니다.

  • 제공 group Id (그룹 ID는 모든 프로젝트에서 고유하게 프로젝트를 식별합니다).

  • 제공 artifact Id (artifact Id는 버전이없는 jar의 이름입니다. 소문자로 된 이름을 선택할 수 있습니다.)

  • 마침을 클릭하십시오.

  • pom.xml 열기-

    • Eclipse의 왼쪽에있는 패키지 탐색기로 이동합니다.

    • CucumberTest 프로젝트를 확장하십시오.

    • pom.xml 파일을 찾습니다.

    • 마우스 오른쪽 버튼을 클릭하고 "텍스트 편집기"로 열기 옵션을 선택합니다.

  • Selenium에 대한 종속성 추가 : 이것은 중앙 저장소에서 로컬 저장소로 다운로드 할 Selenium jar 파일을 Maven을 나타냅니다.

    • 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 − 이름이 지정된 패키지 생성 dataTable 아래에 src/test/java

Step 3 − 기능 파일을 생성합니다.

  • 다음과 같은 기능 파일을 생성합니다. dataTable패키지 dataTable 내부의 .feature (자세한 단계는 시나리오 개요 섹션 참조).

  • 다음 텍스트를 작성하십시오.

    Feature − 데이터 테이블

    잘못된 입력을 전달한 후 새 사용자 등록이 실패했는지 확인하십시오.

    Scenario:

    새 사용자 등록 페이지에있는 경우

    페이지에 잘못된 데이터를 입력 할 때

| Fields                 | Values              |
| First Name             | Tom                 |
| Last Name              | Kenny               |
| Email Address          | [email protected] |
| Re-enter Email Address | [email protected] |
| Password               | Password1           |
| Birthdate              | 01                  |

그러면 사용자 등록이 실패합니다.

  • 파일을 저장하십시오.

Step 4 − 단계 정의 파일을 생성합니다.

  • 패키지 dataTable 안에 'dataTable.java'라는 이름의 단계 정의 파일을 만듭니다 (자세한 단계는 시나리오 개요 섹션 참조).

  • 다음 코드를 작성하십시오.

package dataTable; 

import java.util.List; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.Select;

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 
import cucumber.table.DataTable; 

public class stepdefinition { 
   WebDriver driver = null;
	
   @Given("^I am on new user registration page$") 
   public void goToFacebook() { 
      //Intiate web browser instance. driver = new FirefoxDriver();
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter invalid data on the page$") 
   public void enterData(DataTable table){ 
      //Initialize data table 
      List<list> data = table.raw();
      System.out.println(data.get(1).get(1)); 
      
      //Enter data
      driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
      driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
      driver.findElement(By.name("reg_email__")).sendKeys(data.get(3).get(1));     
      driver.findElement(By.name("reg_email_confirmation__")).
         sendKeys(data.get(4).get(1)); 
      driver.findElement(By.name("reg_passwd__")).sendKeys(data.get(5).get(1)); 
      
      Select dropdownB = new Select(driver.findElement(By.name("birthday_day"))); 
      dropdownB.selectByValue("15"); 
		
      Select dropdownM = new Select(driver.findElement(By.name("birthday_month")));
      dropdownM.selectByValue("6"); 
		
      Select dropdownY = new Select(driver.findElement(By.name("birthday_year")));
      dropdownY.selectByValue("1990"); 
		
      driver.findElement(By.className("_58mt")).click(); 
      // Click submit button driver.findElement(By.name("websubmit")).click(); 
   } 
	
   @Then("^User registration should be unsuccessful$") 
   public void User_registration_should_be_unsuccessful() {
      if(driver.getCurrentUrl().equalsIgnoreCase("https://www.facebook.com/")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   } 
}
  • 파일을 저장하십시오.

Step 5 − 러너 클래스 파일을 생성합니다.

  • 패키지 안에 runTest.java라는 이름의 러너 클래스를 만듭니다.

  • 다음 코드를 작성하십시오.

package dataTable; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { }
  • 파일을 저장하십시오.

  • 옵션을 사용하여 테스트 실행

    • 패키지 탐색기에서 runTest.java 파일을 선택하십시오.

    • 마우스 오른쪽 버튼을 클릭하고 다음 계정으로 실행 옵션을 선택합니다.

    • JUnit 테스트를 선택하십시오.

성공적으로 실행되면 다음 사항을 관찰 할 수 있습니다.

  • Facebook 웹 사이트가로드됩니다.

  • 등록 페이지에 데이터가 입력됩니다.

  • 제출 버튼을 클릭합니다.

  • 홈 페이지가 표시되지 않고 콘솔에 "Test Pass"가 기록되는 것을 볼 수 있습니다.