แตงกวา - คำอธิบายประกอบ
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. จะถูกเรียกใช้งานอีกครั้งสำหรับชื่อผู้ใช้เป็น "" และรหัสผ่านเป็น ""