Selenium สีสดสวย Cucumber (บทช่วยสอนกรอบงาน BDD)
⚡ สรุปอย่างชาญฉลาด
Selenium สีสดสวย Cucumber สร้างกรอบการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (Behavior Driven Development: BDD) ที่ทรงพลัง ซึ่งผสมผสานไวยากรณ์ Gherkin ภาษาอังกฤษธรรมดาเข้ากับ... Selenium การทดสอบอัตโนมัติด้วย WebDriver บทช่วยสอนนี้จะอธิบายถึงข้อกำหนดเบื้องต้น เดินตามสถานการณ์จำลอง 3 แบบ และแสดงวิธีการทำงานร่วมกันของไฟล์ฟีเจอร์ คำจำกัดความขั้นตอน และคลาส TestRunner เพื่อเรียกใช้การทดสอบในเบราว์เซอร์

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีบูรณาการ Cucumber สีสดสวย Selenium WebDriver เป็นเครื่องมือสร้างเฟรมเวิร์กการพัฒนาแบบเน้นพฤติกรรม (Behavior Driven Development: BDD) ที่อ่านง่าย บำรุงรักษาได้ และขับเคลื่อนด้วยข้อมูล
ความหมายของ Cucumber?
Cucumber Gherkin เป็นเครื่องมือทดสอบที่สนับสนุนการพัฒนาแบบเน้นพฤติกรรม (Behavior Driven Development หรือ BDD) โดยจะอธิบายพฤติกรรมของแอปพลิเคชันด้วยข้อความภาษาอังกฤษที่เข้าใจง่ายโดยใช้ภาษา Gherkin ซึ่งช่วยให้ผู้ที่ไม่ใช่โปรแกรมเมอร์สามารถมีส่วนร่วมในการกำหนดข้อกำหนดการทดสอบได้โดยไม่ต้องเรียนรู้ภาษาโปรแกรม เรียนรู้เพิ่มเติมได้ใน... Cucumber เกี่ยวกับการสอน.
ความหมายของ Selenium?
Selenium เป็นเครื่องมืออัตโนมัติที่ใช้สำหรับ การทดสอบสมรรถนะ ของแอปพลิเคชันบนเว็บ Selenium รองรับภาษาโปรแกรมหลายภาษา รวมถึง Javaทับทิม Pythonและ C# ซึ่งทำให้เหมาะอย่างยิ่งสำหรับทีมที่มีพื้นฐานทางเทคนิคที่หลากหลาย เรียนรู้เพิ่มเติมได้ในเว็บไซต์ของเรา Selenium เกี่ยวกับการสอน.
ทำไมต้องใช้ Cucumber สีสดสวย Selenium?
Cucumber และ Selenium เป็นสองเทคโนโลยีการทดสอบที่ได้รับการยอมรับอย่างกว้างขวางที่สุด องค์กรส่วนใหญ่ใช้กันอยู่แล้ว Selenium สำหรับการทดสอบการทำงานและต้องการซ้อนเลเยอร์ Cucumber ด้านบนเพราะ Cucumber ทำให้การอ่านและทำความเข้าใจขั้นตอนการทำงานของแอปพลิเคชันเป็นเรื่องง่าย.
Cucumber อิงตามกรอบการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (Behavior Driven Development) ที่ ทำหน้าที่เป็นสะพาน ระหว่างบทบาทต่อไปนี้:
- วิศวกรซอฟต์แวร์และนักวิเคราะห์ธุรกิจ
- เครื่องทดสอบด้วยตนเองและเครื่องทดสอบอัตโนมัติ
- ผู้ทดสอบและนักพัฒนาด้วยตนเอง
การขอ Cucumber กรอบ BDD ด้วย ช่วยให้ลูกค้าเข้าใจโค้ดแอปพลิเคชัน เนื่องจากใช้ภาษา Gherkin ซึ่งเป็นภาษาข้อความธรรมดา ใครก็ตามในองค์กรสามารถติดตามพฤติกรรมของซอฟต์แวร์ได้ ไวยากรณ์ของ Gherkin เขียนด้วยภาษาอังกฤษที่อ่านง่าย ทำให้ข้อกำหนดสามารถเข้าถึงได้สำหรับผู้ที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค
ข้อกำหนดเบื้องต้นสำหรับการใช้งาน Cucumber สีสดสวย Selenium
ก่อนที่เราจะเริ่มต้น Cucumber-Selenium การเชื่อมต่อระบบ คุณต้องมีสิ่งต่อไปนี้:
Selenium ไฟล์ jar:
- Selenium-เซิร์ฟเวอร์แบบสแตนด์อโลน
คุณสามารถดาวน์โหลดได้ที่ https://www.selenium.dev/downloads/.
ไฟล์ Jar สำหรับ Cucumber:
- Cucumber- คะแนน
- Cucumber-html
- Cobertura ความครอบคลุมของรหัส
- Cucumber-จาวา
- Cucumber-จูนิต
- Cucumber-jvm-deps
- Cucumber-การรายงาน
- แฮมเครสต์คอร์
- แตงเล็ก ๆ หนึ่งมีสีเหลือง
- JUnit
คุณสามารถดาวน์โหลดได้ที่ https://mvnrepository.com/search?q=Cucumberคุณจะต้องค้นหาไฟล์ .jar แต่ละไฟล์และดาวน์โหลดทีละไฟล์
ตัวอย่างเช่น นี่คือวิธีการดาวน์โหลดไฟล์ jar ไฟล์หนึ่ง ซึ่งก็คือไฟล์ “Cucumberไลบรารี "-core"
คลิกที่ลิงก์ดาวน์โหลดด้านบน ระบบจะนำคุณไปยังเว็บไซต์ Maven Repository จากนั้นค้นหาไฟล์ jar ที่ต้องการ (ในกรณีนี้คือ “Cucumber แกนหลัก (Core) ดังที่แสดงในภาพหน้าจอด้านล่าง:
ในหน้าถัดไป ให้คลิกที่เวอร์ชัน 1.2.2:
ในหน้าจอถัดไป ให้คลิก ดาวน์โหลด เพื่อดาวน์โหลดไฟล์ Cucumber ไฟล์ JAR หลัก:
หมายเหตุ เพื่อความสะดวก เราได้รวมไฟล์ jar ของ Maven ที่จำเป็นไว้ให้แล้ว Good Farm Animal Welfare Awardsไฟล์ JAR เหล่านี้อาจล้าสมัยและใช้งานร่วมกันไม่ได้เมื่อเวลาผ่านไป ดังนั้นเราขอแนะนำให้คุณดาวน์โหลดด้วยตนเองโดยใช้วิธีการที่อธิบายไว้ข้างต้น
การทดสอบอัตโนมัติโดยใช้ Cucumber สีสดสวย Selenium
เรามาลองใช้งานกันดูครับ Cucumber สีสดสวย Selenium ทีละขั้นตอน ในที่นี้เราจะกล่าวถึงสามสถานการณ์:
- สถานการณ์ที่ 1: พิมพ์ข้อความในคอนโซล
- สถานการณ์ที่ 2: ป้อนข้อมูลประจำตัวสำหรับการเข้าสู่ระบบและรีเซ็ตค่า
- สถานการณ์ที่ 3: ป้อนข้อมูลประจำตัวสำหรับการเข้าสู่ระบบบน Guru99 แล้วรีเซ็ตค่า — ทำซ้ำสำหรับข้อมูล 3 ชุด
สถานการณ์ที่ 1: พิมพ์ข้อความในคอนโซล
ในสถานการณ์นี้ เราเพียงแค่พิมพ์ข้อความลงในคอนโซลโดยใช้ Cucumber.
ขั้นตอน 1) สร้างโปรเจ็กต์ใน Eclipse.
สร้าง Java โครงการที่มีชื่อว่า "Cucumberด้วยระบบเส้นทางSelenium" ตามที่แสดงในภาพหน้าจอด้านล่าง
ขั้นตอน 2) เพิ่มไฟล์ jar ลงในโปรเจ็กต์
คลิกขวาที่โปรเจ็กต์ > คุณสมบัติ > Java Build Path. เพิ่มไลบรารีทั้งหมดที่คุณดาวน์โหลดไว้ก่อนหน้านี้
ขั้นตอน 3) สร้างไฟล์ฟีเจอร์
ในการสร้างไฟล์ฟีเจอร์ ขั้นแรกให้สร้างโฟลเดอร์ Features ดังแสดงในภาพหน้าจอด้านล่าง
ป้อนชื่อโฟลเดอร์ “Features” แล้วคลิก เสร็จสิ้น
จากนั้นสร้างไฟล์ฟีเจอร์ภายในโฟลเดอร์ Features โดยตั้งชื่อว่า... คุณสมบัติการทดสอบของฉันกระบวนการนี้คล้ายกับการสร้างโฟลเดอร์
หมายเหตุ คุณอาจต้องติดตั้ง Cucumber Eclipse ติดตั้งปลั๊กอินก่อน ไปที่เมนูช่วยเหลือ → ติดตั้งซอฟต์แวร์ใหม่ แล้ววางลิงก์ลงไป http://cucumber.github.io/cucumber-eclipse/update-site/และติดตั้ง
ขั้นตอน 4) เขียนสถานการณ์จำลองขึ้นมา
บรรทัดด้านล่างนี้เขียนด้วยภาษา คุณสมบัติการทดสอบของฉัน โดยใช้ภาษาของ Gherkin:
Feature: Reset functionality on login page of Application
Scenario: Verification of Reset button
Given Open the Firefox and launch the application
When Enter the Username and Password
Then Reset the credential
Code คำอธิบาย
บรรทัดที่ 1) กำหนดฟังก์ชันการทำงานทางธุรกิจ
บรรทัดที่ 2) กำหนดสถานการณ์ที่จะทดสอบ
บรรทัดที่ 3) กำหนดเงื่อนไขเบื้องต้น (กำหนดให้)
บรรทัดที่ 4) กำหนดการกระทำที่จะดำเนินการ (เมื่อใด)
บรรทัดที่ 5) กำหนดผลลัพธ์ที่คาดหวัง (จากนั้น)
ขั้นตอน 5) เขียน Selenium สคริปต์ TestRunner สำหรับ Cucumber การออกแบบเฟรมเวิร์ก
สร้าง ผู้ทดสอบ แพ็คเกจแล้วก็ รันเนอร์.จาวา ไฟล์คลาสอยู่ภายใต้ไฟล์นั้น
package TestRunner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(features = "Features", glue = {"StepDefinition"})
public class Runner
{
}
ในข้างต้น Cucumber Java ตัวอย่างเช่น เรารัน การทดสอบแตงกวา โดยใช้คำอธิบายประกอบดังต่อไปนี้:
@รันด้วย() บอก JUnit เกี่ยวกับคลาสตัวรันการทดสอบที่เริ่มต้นการดำเนินการทดสอบของเรา
@Cucumberตัวเลือก() กำหนดคุณสมบัติการทดสอบ เช่น เส้นทางไฟล์คุณลักษณะและแพ็กเกจเชื่อมต่อขั้นตอนการกำหนด
ภาพหน้าจอของไฟล์ TestRunner:
ขั้นตอน 6) สร้างสคริปต์ Step Definition
ตอนนี้สร้าง คำจำกัดความขั้นตอน แพ็คเกจแล้วก็ Steps.java ไฟล์สคริปต์อยู่ภายใต้ไฟล์นั้น ภายในไฟล์ Steps.java เราเขียนโค้ดดังนี้ Selenium ตรรกะที่สอดคล้องกับแต่ละขั้นตอนของ Gherkin
package StepDefinition;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.out.println("This Step open the Firefox and launch the application.");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
System.out.println("This step enter the Username and Password on the login page.");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
System.out.println("This step click on the Reset button.");
}
}
ชั้นเรียนนั้นมีชื่อว่า ขั้นตอนและ Cucumber คำอธิบายประกอบจะเชื่อมโยงแต่ละวิธีกับขั้นตอนในไฟล์คุณลักษณะ:
@ที่ให้ไว้ กำหนดวิธีการเปิด Firefox และเปิดใช้งานแอปพลิเคชัน
@เมื่อไร กำหนดวิธีการป้อนชื่อผู้ใช้และรหัสผ่าน
@แล้ว กำหนดวิธีการรีเซ็ตข้อมูลประจำตัว
แต่ละวิธีจะพิมพ์ข้อความลงในคอนโซลเท่านั้น
ภาพหน้าจอด้านล่างแสดงสคริปต์ Steps.java และโครงสร้างโปรเจ็กต์:
หมายเหตุ คำจำกัดความของขั้นตอนคือโค้ดที่คุณต้องการ Cucumber เพื่อดำเนินการเมื่อตรงกับขั้นตอนในไฟล์คุณลักษณะ
ขั้นตอน 7) ดำเนินการสคริปต์
เรียกใช้สคริปต์นี้จากไฟล์ TestRunner (Runner.java) ดังที่แสดงด้านล่าง
ขั้นตอน 8) วิเคราะห์ผลลัพธ์
เมื่อเรียกใช้ Runner.java Cucumber พิมพ์ข้อความเดียวกันกับที่กำหนดไว้ในไฟล์ Steps.java ลงในคอนโซล
สถานการณ์ที่ 2: ป้อนข้อมูลประจำตัวในการเข้าสู่ระบบและรีเซ็ตค่า
ตรงนี้เราจะป้อนข้อมูลประจำตัวลงไป Guruหน้าล็อกอินสาธิต 99 หน้า และรีเซ็ตค่า
สำหรับสถานการณ์ที่ 2 เราเพียงแค่ต้องอัปเดตข้อมูลเท่านั้น Steps.javaที่นี่เราเพิ่มของจริงเข้าไป Selenium โค้ด ก่อนอื่น ตรวจสอบให้แน่ใจว่า... Selenium ไฟล์ jar ถูกเพิ่มเข้าไปในโปรเจ็กต์แล้ว
ขั้นตอน 1) อัปเดตสคริปต์ Steps.java ตามที่แสดงด้านล่าง
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username and Password$")
public void enter_the_Username_and_Password() throws Throwable
{
driver.findElement(By.name("uid")).sendKeys("username12");
driver.findElement(By.name("password")).sendKeys("password12");
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
ภาพหน้าจอข้างต้น Selenium สคริปต์:
ขั้นตอน 2) ดำเนินการสคริปต์
หลังจากอัปเดตไฟล์ Steps.java แล้ว ให้รันไฟล์ Runner.java
ขั้นตอน 3) วิเคราะห์ผลลัพธ์ ในผลลัพธ์คุณจะเห็นสิ่งต่อไปนี้:
- เปิดตัวเบราว์เซอร์แล้ว
- Guruเว็บไซต์สาธิตของธนาคาร 99 แห่งเปิดให้บริการแล้ว
- ในหน้าล็อกอินจะต้องป้อนชื่อผู้ใช้และรหัสผ่าน
- ปุ่มรีเซ็ตจะล้างค่าต่างๆ
สถานการณ์ที่ 3: เรียกใช้ขั้นตอนการเข้าสู่ระบบและการรีเซ็ตด้วยชุดข้อมูล 3 ชุด
ตรงนี้เราจำเป็นต้องอัปเดตทั้งสองอย่าง Steps.java และไฟล์ฟีเจอร์เพื่อขับเคลื่อนกระบวนการเดียวกันโดยใช้ข้อมูลรับรองสามชุด
ขั้นตอน 1) อัปเดตไฟล์ฟีเจอร์ตามที่แสดงด้านล่าง
เราใช้ โครงร่างสถานการณ์ และ ตัวอย่าง ไวยากรณ์ ดังนั้น Cucumber วนซ้ำสถานการณ์เดียวกันในแต่ละแถวข้อมูล
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
Given Open the Firefox and launch the application
When Enter the Username <username> and Password <password>
Then Reset the credential
Examples:
| username | password |
| User1 | password1 |
| User2 | password2 |
| User3 | password3 |
ขั้นตอน 2) อัปเดตสคริปต์ Steps.java
ในส่วนนี้ เราจะอัปเดตลายเซ็นของเมธอดเพื่อให้รับพารามิเตอร์จากตารางตัวอย่างได้
package StepDefinition;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Steps {
WebDriver driver;
@Given("^Open the Firefox and launch the application$")
public void open_the_Firefox_and_launch_the_application() throws Throwable
{
System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demo.guru99.com/v4");
}
@When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")
public void enter_the_Username_and_Password(String username, String password) throws Throwable
{
driver.findElement(By.name("uid")).sendKeys(username);
driver.findElement(By.name("password")).sendKeys(password);
}
@Then("^Reset the credential$")
public void Reset_the_credential() throws Throwable
{
driver.findElement(By.name("btnReset")).click();
}
}
ขั้นตอน 3) เรียกใช้สคริปต์ที่อัปเดตแล้ว
หน้าจอด้านล่างแสดงผลการประมวลผลที่สำเร็จและเวลาที่ใช้สำหรับแต่ละชุดข้อมูล
ขั้นตอน 4) วิเคราะห์ผลลัพธ์ ขั้นตอนต่อไปนี้จะทำซ้ำสำหรับข้อมูลทั้ง 3 ชุด:
- เปิดตัวเบราว์เซอร์แล้ว
- Guruเว็บไซต์สาธิตของธนาคาร 99 แห่งเปิดให้บริการแล้ว
- ในหน้าล็อกอินจะต้องป้อนชื่อผู้ใช้และรหัสผ่าน
- ปุ่มรีเซ็ตจะล้างค่าต่างๆ























