Mentimun - Anotasi

Annotationadalah teks yang telah ditentukan sebelumnya, yang memiliki arti tertentu. Ini memberi tahu kompiler / interpreter, apa yang harus dilakukan setelah eksekusi. Mentimun memiliki beberapa penjelasan berikut -

  • Given -

    • Ini menjelaskan prasyarat untuk tes yang akan dijalankan.

    • Contoh - DIBERIKAN Saya adalah pengguna Facebook

  • When -

    • Ini menentukan titik pemicu untuk eksekusi skenario pengujian apa pun.

    • Contoh - SAAT saya memasukkan "<username>"

  • Then -

    • Kemudian tahan hasil yang diharapkan untuk pengujian yang akan dijalankan.

    • Contoh - MAKA login harus berhasil.

  • And -

    • Ini memberikan kondisi AND yang logis antara dua pernyataan apa pun. AND dapat digunakan bersama dengan pernyataan GIVEN, WHEN dan THEN.

    • Contoh - KETIKA saya memasukkan "<username>" DAN saya memasukkan "<password>"

  • But -

    • Ini menandakan kondisi OR logis antara dua pernyataan. ATAU dapat digunakan dalam hubungannya dengan pernyataan GIVEN, WHEN dan THEN.

    • Contoh - MAKA login harus berhasil. TAPI beranda tidak boleh hilang.

  • Scenario -

    • Detail tentang skenario dalam pengujian harus diambil setelah kata kunci "Skenario:"

    • Contoh -

      Skenario:

      DIBERIKAN Saya adalah pengguna Facebook

      KETIKA saya memasukkan file

      DAN saya memasukkan saya

      MAKA login harus berhasil.

      TAPI beranda tidak boleh hilang.

  • Scenario Outline - (Akan dibahas nanti)

  • Examples - (Akan dibahas nanti)

  • Background -

    • Latar belakang umumnya memiliki instruksi tentang apa yang harus disiapkan sebelum setiap skenario dijalankan. Namun, itu dijalankan setelah hook "Sebelum" (akan dibahas nanti). Jadi ini ideal untuk digunakan sebagai kode ketika kita ingin mengatur web-browser atau kita ingin membuat konektivitas database.

      • Contoh -

        Latar Belakang:

        Buka beranda Facebook.

Contoh Skenario

Mari mengotomatiskan skenario untuk memahami anotasi dengan lebih baik.

Step 1

Buat Proyek Uji Maven dengan nama AnnotationTest.

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

  • Berikan ID grup (ID grup akan mengidentifikasi proyek Anda secara unik di semua proyek).

  • Berikan Id artefak (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 AnnotationTest.

    • 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 dependency, buat tag dependency (<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 Annotation under src/test/java

  • Pilih proyek yang baru dibuat.

  • Klik kanan dan pilih 'Baru'.

  • Pilih opsi sebagai 'Paket'.

  • Beri nama sebagai 'Annotation'.

  • Simpan itu.

Step 3

Buat file fitur bernama annotation.feature.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file seperti outline.feature.

  • Tulis teks berikut di dalam file dan simpan.

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

Buat file definisi langkah.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file sebagai annotation.java

  • Tulis teks berikut di dalam file dan simpan.

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

Buat file kelas runner.

  • Pilih dan klik kanan pada garis besar paket.

  • Klik pada file 'Baru'.

  • Beri nama file, seperti runTest.java

  • Tulis teks berikut di dalam file dan simpan.

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

Jalankan tes menggunakan opsi -

  • Pilih file runTest.java dari penjelajah paket.

  • Klik kanan dan pilih opsi ‘Run as’

  • Pilih uji JUnit.

Anda akan mengamati hal-hal berikut ketika Anda menjalankan file kelas ini -

  • Facebook terbuka di browser web Firefox baru.

  • TOM akan diteruskan sebagai masukan ke bidang nama pengguna.

  • JERRY akan diteruskan sebagai masukan ke bidang kata sandi.

  • Login akan diklik.

  • Pesan akan ditampilkan di browser tentang login yang tidak berhasil.

  • Di konsol, Anda akan melihat "Test Pass" tercetak

  • Hasil langkah 1. sampai 5. Akan dieksekusi ulang untuk username sebagai "" dan password sebagai "".