Salatalık - Veri Tabloları

Otomasyon üzerinde çalışırken çeşitli senaryolarla karşılaşabiliriz. Her senaryo farklı bir anlam ve ihtiyaçlar taşır.

Başından beri, bir sosyal ağ sitesi için, geçilecek iki girdi parametresine sahip olduğumuz bir oturum açma işlevi örneği alıyoruz. Biraz daha olasılık düşünelim. Peki ya "Yeni kullanıcı kaydı" işlevi? Tipik olarak, bir sosyal ağ sitesine yeni bir kullanıcı kaydederken girdi parametreleri ne olabilir? Aşağıdakine benzer bir şey -

  • Kullanıcı adı
  • E
  • Password
  • Şifreyi yeniden gir
  • Birthdate
  • Gender
  • Telefon numarası

Feature - Yeni kullanıcı kaydı.

Yanlış girişleri geçtikten sonra yeni kullanıcı kaydının başarısız olduğunu doğrulayın.

Yeni bir kullanıcı kayıt sayfasındayım.

Kullanıcı adını ve e-posta adresini e-posta adresi ve şifre olarak girdiğimde ve şifreyi olarak ve Doğum tarihi olarak ve Cinsiyet olarak ve telefon numarasını tekrar girdiğimde kullanıcı kaydı başarısız oluyor.

İlk bakışta biraz dağınık görünüyor. Öyleyse, bu tür girdileri yönetmenin daha iyi bir yolu var mı? Cevap "Veri Tablosu" olabilir. Veri tablosu, tek bir etiket için sağlanacak bir girdi kümesidir. Bu etiket VERİLEN, NE ZAMAN veya SONRA olabilir.

Yukarıdaki senaryoyu veri tablosu yardımı ile yazalım ve aşağıdaki gibi görünecektir -

Yeni bir kullanıcı kayıt sayfasında olduğum için

Sayfaya geçerli veriler girdiğimde

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

Daha sonra kullanıcı kaydı başarılı olmalıdır.

Misal

Bir veri tablosu örneğini otomatikleştirelim.

Step 1 - "DataTableTest" adlı bir Maven Test Projesi oluşturun.

  • Dosya → Yeni → Diğerleri → Maven → Maven Projesi → İleri'ye gidin.

  • Sağlamak group Id (grup kimliği, projenizi tüm projelerde benzersiz olarak tanımlayacaktır).

  • Sağlamak artifact Id (yapı kimliği, sürümsüz kavanozun adıdır. Küçük harfli herhangi bir adı seçebilirsiniz).

  • Finish'e tıklayın.

  • Pom.xml dosyasını açın -

    • Eclipse'in sol tarafındaki paket gezginine gidin.

    • CucumberTest projesini genişletin.

    • Pom.xml dosyasını bulun.

    • Sağ tıklayın ve "Metin Düzenleyici" ile Aç seçeneğini seçin.

  • Selenium için bağımlılık ekle: Bu, hangi Selenium jar dosyalarının merkezi depodan yerel depoya indirileceğini Maven'i gösterecektir.

    • Açık pom.xml düzenleme modunda, proje etiketinin içinde bağımlılıklar etiketi (<dependencies> </dependencies>) oluşturun.

    • Bağımlılıklar etiketinin içinde bağımlılık etiketi oluşturun. (<dependency> </dependency>).

    • Bağımlılık etiketi içinde aşağıdaki bilgileri sağlayın.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Cucumber-Java için bağımlılık ekle - Bu, merkezi depodan yerel depoya hangi Cucumber dosyalarının indirileceğini Maven'i gösterecektir.

    • Bir tane daha bağımlılık etiketi oluşturun.

    • Bağımlılık etiketi içinde aşağıdaki bilgileri sağlayın.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Cucumber-JUnit için bağımlılık ekle - Bu, merkezi depodan yerel depoya hangi Cucumber JUnit dosyalarının indirileceğini Maven'i gösterecektir.

    • Bir tane daha bağımlılık etiketi oluşturun.

    • Bağımlılık etiketi içinde aşağıdaki bilgileri sağlayın.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • JUnit için bağımlılık ekle - Bu, merkezi depodan yerel depoya hangi JUnit dosyalarının indirileceğini Maven'i gösterecektir.

    • Bir tane daha bağımlılık etiketi oluşturun.

    • Bağımlılık etiketi içinde aşağıdaki bilgileri sağlayın

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • İkili dosyaları doğrulayın.

    • Pom.xml başarıyla düzenlendikten sonra kaydedin.

    • Projeye Git → Temizle - Birkaç dakika sürecektir.

Step 2 - adlı bir paket oluşturun dataTable altında src/test/java

Step 3 - Bir Özellik dosyası oluşturun.

  • Adlı bir özellik dosyası oluşturun dataTablepaket dataTable içinde .feature (daha ayrıntılı adımlar için bölüm senaryo taslağına bakın).

  • Aşağıdaki metni yazın.

    Feature - Veri tablosu

    Yanlış girişleri geçtikten sonra yeni kullanıcı kaydının başarısız olduğunu doğrulayın.

    Scenario:

    Yeni kullanıcı kayıt sayfasındayım.

    Sayfaya geçersiz veri girdiğimde

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

O zaman kullanıcı kaydı başarısız olmalı

  • Dosya 'yı kaydet.

Step 4 - Adım tanımlama dosyası oluşturun.

  • DataTable paketinin içinde 'dataTable.java' adlı adım tanımı dosyasını oluşturun (daha ayrıntılı adımlar için bölüm senaryo taslağına bakın).

  • Aşağıdaki kodu yazın.

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(); 
   } 
}
  • Dosya 'yı kaydet.

Step 5 - Bir koşucu sınıfı dosyası oluşturun.

  • Paketin içinde runTest.java adlı runner sınıfı oluşturun.

  • Aşağıdaki kodu yazın.

package dataTable; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { }
  • Dosya 'yı kaydet.

  • Seçeneği kullanarak testi çalıştırın

    • Paket gezgininden runTest.java dosyasını seçin.

    • Sağ tıklayın ve Farklı çalıştır seçeneğini seçin.

    • JUnit testini seçin.

Başarılı bir şekilde uygulandıktan sonra aşağıdaki şeyleri gözlemleyebilirsiniz.

  • Facebook web sitesi yükleniyor.

  • Veriler kayıt sayfasına girilecektir.

  • Gönder düğmesi tıklanacaktır.

  • Ana sayfanın görüntülenmeyeceğini ve konsolda “Test Pass” yazılacağını göreceğiz.