แตงกวา - คำอธิบายประกอบ

Annotationเป็นข้อความที่กำหนดไว้ล่วงหน้าซึ่งมีความหมายเฉพาะ ช่วยให้คอมไพเลอร์ / ล่ามทราบสิ่งที่ควรทำเมื่อดำเนินการ แตงกวามีคำอธิบายประกอบต่อไปนี้ -

  • Given -

    • อธิบายถึงข้อกำหนดเบื้องต้นสำหรับการทดสอบที่จะดำเนินการ

    • ตัวอย่าง - GIVEN ฉันเป็นผู้ใช้ Facebook

  • When -

    • เป็นการกำหนดจุดทริกเกอร์สำหรับการดำเนินการในสถานการณ์ทดสอบใด ๆ

    • ตัวอย่าง - เมื่อฉันป้อน "<username>"

  • Then -

    • จากนั้นเก็บผลลัพธ์ที่คาดไว้สำหรับการทดสอบที่จะดำเนินการ

    • ตัวอย่าง - จากนั้นการเข้าสู่ระบบควรจะสำเร็จ

  • And -

    • จัดเตรียมเงื่อนไขและตรรกะระหว่างสองคำสั่งใด ๆ และสามารถใช้ร่วมกับคำสั่ง GIVEN, WHEN และ THEN ได้

    • ตัวอย่าง - เมื่อฉันป้อน "<username>" ของฉันและฉันป้อน "<password>" ของฉัน

  • But -

    • หมายถึงตรรกะหรือเงื่อนไขระหว่างสองคำสั่งใด ๆ หรือสามารถใช้ร่วมกับคำสั่ง GIVEN, WHEN และ THEN ได้

    • ตัวอย่าง - จากนั้นการเข้าสู่ระบบควรจะสำเร็จ แต่ไม่ควรพลาดโฮมเพจ

  • Scenario -

    • ต้องบันทึกรายละเอียดเกี่ยวกับสถานการณ์จำลองภายใต้การทดสอบหลังคำหลัก "สถานการณ์:"

    • ตัวอย่าง -

      สถานการณ์:

      GIVEN ฉันเป็นผู้ใช้ Facebook

      เมื่อฉันป้อนไฟล์

      และฉันป้อนไฟล์

      จากนั้นการเข้าสู่ระบบควรจะสำเร็จ

      แต่ไม่ควรพลาดโฮมเพจ

  • Scenario Outline - (จะกล่าวถึงภายหลัง)

  • Examples - (จะกล่าวถึงภายหลัง)

  • Background -

    • พื้นหลังโดยทั่วไปมีคำแนะนำเกี่ยวกับสิ่งที่ต้องตั้งค่าก่อนที่แต่ละสถานการณ์จะดำเนินไป อย่างไรก็ตามมันจะถูกดำเนินการหลังจากขอเกี่ยว "ก่อน" (จะครอบคลุมในภายหลัง) ดังนั้นจึงเหมาะอย่างยิ่งที่จะใช้เป็นรหัสเมื่อเราต้องการตั้งค่าเว็บเบราว์เซอร์หรือเราต้องการสร้างการเชื่อมต่อฐานข้อมูล

      • ตัวอย่าง -

        พื้นหลัง:

        ไปที่หน้าแรกของ Facebook

สถานการณ์ตัวอย่าง

มาสร้างสถานการณ์โดยอัตโนมัติเพื่อให้เข้าใจคำอธิบายประกอบได้ดีขึ้น

Step 1

สร้างโครงการทดสอบ Maven ที่มีชื่อว่า AnnotationTest.

  • ไปที่ไฟล์→ใหม่→อื่น ๆ → Maven → Maven Project →ถัดไป

  • ระบุรหัสกลุ่ม (รหัสกลุ่มจะระบุโครงการของคุณโดยไม่ซ้ำกันในทุกโครงการ)

  • ระบุรหัสสิ่งประดิษฐ์ (รหัสวัตถุคือชื่อของ jar ที่ไม่มีเวอร์ชันคุณสามารถเลือกชื่อใดก็ได้ที่เป็นตัวพิมพ์เล็ก)

  • คลิกที่ Finish

  • เปิด pom.xml −

    • ไปที่ package explorer ทางซ้ายมือของ Eclipse

    • ขยายโครงการ AnnotationTest

    • ค้นหาไฟล์ pom.xml

    • คลิกขวาและเลือกตัวเลือกเปิดด้วย“ โปรแกรมแก้ไขข้อความ”

  • เพิ่มการพึ่งพาสำหรับ Selenium - สิ่งนี้จะระบุ Maven ซึ่งจะต้องดาวน์โหลดไฟล์ Selenium jar จากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง

    • เปิด pom.xml อยู่ในโหมดแก้ไขสร้างแท็กการอ้างอิง (<dependencies> </dependencies>) ภายในแท็กโปรเจ็กต์

    • ภายในแท็กการอ้างอิงให้สร้างแท็กการพึ่งพา (<dependency> </dependency>)

    • ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • เพิ่มการพึ่งพาสำหรับ Cucumber-Java - สิ่งนี้จะระบุ Maven ซึ่งไฟล์ Cucumber จะถูกดาวน์โหลดจากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง

    • สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก

    • ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • เพิ่มการพึ่งพาสำหรับ Cucumber-JUnit - สิ่งนี้จะระบุ Maven ซึ่งจะต้องดาวน์โหลดไฟล์ Cucumber JUnit จากที่เก็บกลางไปยังที่เก็บในเครื่อง

    • สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก

    • ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • เพิ่มการพึ่งพาสำหรับ JUnit - สิ่งนี้จะระบุ Maven ซึ่งไฟล์ JUnit จะถูกดาวน์โหลดจากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง

    • สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก

    • ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • ตรวจสอบไบนารี

    • เมื่อแก้ไข pom.xml สำเร็จแล้วให้บันทึก

    • ไปที่ Project → Clean - จะใช้เวลาสักครู่

Step 2

สร้างแพ็คเกจชื่อ Annotation ภายใต้ src/test/java

  • เลือกโครงการที่สร้างขึ้นใหม่

  • คลิกขวาและเลือก 'ใหม่'

  • เลือกตัวเลือกเป็น 'แพ็คเกจ'

  • ตั้งชื่อเป็น "คำอธิบายประกอบ"

  • บันทึกไว้

Step 3

สร้างไฟล์ฟีเจอร์ชื่อ annotation.feature.

  • เลือกและคลิกขวาที่โครงร่างแพ็คเกจ

  • คลิกที่ไฟล์ 'New'

  • ตั้งชื่อไฟล์เช่น outline.feature.

  • เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก

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

สร้างไฟล์ข้อกำหนดขั้นตอน

  • เลือกและคลิกขวาที่โครงร่างแพ็คเกจ

  • คลิกที่ไฟล์ 'New'

  • ตั้งชื่อไฟล์เป็น annotation.java

  • เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก

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

สร้างไฟล์คลาสนักวิ่ง

  • เลือกและคลิกขวาที่โครงร่างแพ็คเกจ

  • คลิกที่ไฟล์ 'New'

  • ตั้งชื่อไฟล์เช่น runTest.java

  • เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก

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

ทำการทดสอบโดยใช้ตัวเลือก -

  • เลือกไฟล์ runTest.java จาก package explorer

  • คลิกขวาและเลือกตัวเลือก ‘Run as’

  • เลือก JUnit test

คุณจะสังเกตสิ่งต่อไปนี้เมื่อคุณเรียกใช้ไฟล์คลาสนี้ -

  • Facebook เปิดในอินสแตนซ์เว็บเบราว์เซอร์ Firefox ใหม่

  • TOM จะถูกส่งเป็นอินพุตไปยังฟิลด์ชื่อผู้ใช้

  • JERRY จะถูกส่งเป็นอินพุตไปยังฟิลด์รหัสผ่าน

  • เข้าสู่ระบบจะคลิก

  • ข้อความจะแสดงบนเบราว์เซอร์เกี่ยวกับการเข้าสู่ระบบที่ไม่สำเร็จ

  • ในคอนโซลคุณจะเห็น“ Test Pass” พิมพ์อยู่

  • ผลลัพธ์ขั้นตอนที่ 1. ถึง 5. จะถูกเรียกใช้งานอีกครั้งสำหรับชื่อผู้ใช้เป็น "" และรหัสผ่านเป็น ""