Mentimun - Tabel Data

Saat mengerjakan otomatisasi, kami mungkin menghadapi berbagai skenario. Setiap skenario memiliki arti dan kebutuhan yang berbeda.

Sejak awal, kami telah mengambil contoh fungsionalitas login untuk situs jejaring sosial, di mana kami hanya memiliki dua parameter input untuk diteruskan. Mari kita pikirkan kemungkinan lainnya. Bagaimana dengan fungsionalitas "Pendaftaran pengguna baru"? Biasanya, apa yang bisa menjadi parameter input saat mendaftarkan pengguna baru untuk situs jejaring sosial? Sesuatu seperti berikut -

  • Nama pengguna
  • Alamat email
  • Password
  • Masukkan Kembali password
  • Birthdate
  • Gender
  • Nomor telepon

Feature - Pendaftaran pengguna baru.

Verifikasi bahwa pendaftaran pengguna baru tidak berhasil setelah memberikan masukan yang salah.

Mengingat saya berada di halaman pendaftaran pengguna baru.

Ketika saya memasukkan nama pengguna dan alamat email sebagai alamat email dan kata sandi sebagai, dan memasukkan kembali kata sandi sebagai dan Tanggal lahir sebagai dan Jenis kelamin sebagai dan nomor telepon maka pendaftaran pengguna seharusnya tidak berhasil.

Sekilas terlihat agak berantakan. Jadi, adakah cara yang lebih baik untuk mengelola input seperti itu? Jawaban bisa berupa "Tabel Data". Tabel data adalah sekumpulan input yang akan disediakan untuk satu tag. Tag ini bisa DIBERIKAN, KAPAN, atau KEMUDIAN.

Mari tulis skenario di atas dengan bantuan tabel data dan akan terlihat seperti berikut -

Mengingat saya berada di halaman pendaftaran pengguna baru

Ketika saya memasukkan data yang valid di halaman

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

Maka pendaftaran pengguna harus berhasil.

Contoh

Mari mengotomatiskan contoh tabel data.

Step 1 - Buat Proyek Uji Maven bernama "DataTableTest".

  • Buka File → Baru → Lainnya → Maven → Proyek Maven → Berikutnya.

  • Menyediakan group Id (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Menyediakan artifact Id (Id artefak adalah nama toples tanpa versi. Anda dapat memilih nama apa pun yang menggunakan huruf kecil).

  • Klik Selesai.

  • Buka pom.xml -

    • Pergi ke penjelajah paket di sisi kiri Eclipse.

    • Perluas proyek CucumberTest.

    • Temukan file pom.xml.

    • Klik kanan dan pilih opsi, Buka dengan "Editor Teks".

  • Tambahkan ketergantungan untuk Selenium: Ini akan menunjukkan Maven, file jar Selenium mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buka pom.xml dalam mode edit, buat tag dependensi (<dependencies> </dependencies>), di dalam tag proyek.

    • Di dalam tag dependensi, buat tag dependensi. (<dependency> </dependency>).

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Tambahkan ketergantungan untuk Ketimun-Java - Ini akan menunjukkan Maven, file Ketimun mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan dependensi untuk Cucumber-JUnit - Ini akan menunjukkan Maven, file Cucumber JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Tambahkan ketergantungan untuk JUnit - Ini akan menunjukkan Maven, file JUnit mana yang akan diunduh dari repositori pusat ke repositori lokal.

    • Buat satu tag ketergantungan lagi.

    • Berikan informasi berikut dalam tag ketergantungan

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifikasi biner.

    • Setelah pom.xml berhasil diedit, simpan.

    • Buka Proyek → Bersihkan - Ini akan memakan waktu beberapa menit.

Step 2 - Buat paket bernama dataTable dibawah src/test/java

Step 3 - Buat file Fitur.

  • Buat file fitur, bernama dataTable.feature di dalam package dataTable (lihat garis besar skenario bagian untuk langkah-langkah yang lebih detail).

  • Tulis teks berikut.

    Feature - Tabel data

    Verifikasi bahwa pendaftaran pengguna baru tidak berhasil setelah memberikan masukan yang salah.

    Scenario:

    Mengingat saya berada di halaman pendaftaran pengguna baru

    Ketika saya memasukkan data yang tidak valid di halaman

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

Maka pendaftaran pengguna seharusnya tidak berhasil

  • Simpan file.

Step 4 - Buat file definisi langkah.

  • Buat file definisi langkah bernama 'dataTable.java' di dalam paket dataTable (lihat garis besar skenario bagian untuk langkah-langkah yang lebih detail).

  • Tulis kode berikut.

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(); 
   } 
}
  • Simpan file.

Step 5 - Buat file kelas runner.

  • Buat kelas runner bernama runTest.java di dalam paket.

  • Tulis kode berikut.

package dataTable; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
 
public class runTest { }
  • Simpan file.

  • Jalankan pengujian menggunakan opsi

    • Pilih file runTest.java dari penjelajah paket.

    • Klik kanan dan pilih opsi, Jalankan sebagai.

    • Pilih uji JUnit.

Anda dapat mengamati hal-hal berikut setelah eksekusi berhasil.

  • Situs web Facebook dimuat.

  • Data akan dimasukkan pada halaman registrasi.

  • Tombol kirim akan diklik.

  • Kita akan melihat bahwa halaman muka tidak akan ditampilkan dan "Test Pass" akan tertulis di konsol.