สร้างครั้งแรกของคุณ Cucumber สคริปต์ (2 ตัวอย่าง)

⚡ สรุปอย่างชาญฉลาด

Cucumber การเรียกใช้สคริปต์ช่วยให้คุณแปลงสถานการณ์ Gherkin ที่เขียนด้วยภาษาธรรมดาให้เป็นการทดสอบอัตโนมัติที่สามารถเรียกใช้งานได้โดยใช้ไฟล์ Step Definition ซึ่งช่วยให้ทีมสามารถตรวจสอบพฤติกรรม แบ่งปันเจตนาให้กับผู้มีส่วนได้ส่วนเสีย และส่งมอบโครงการที่ขับเคลื่อนด้วย BDD ได้อย่างน่าเชื่อถือ Cucumber or Cucumber-เจวีเอ็ม

  • 🥒 ข้อมูลพื้นฐานเกี่ยวกับแตงกวาดอง: ไฟล์ฟีเจอร์จะอธิบายสถานการณ์ต่างๆ ด้วยรูปแบบ Given-When-Then ซึ่งทั้งผู้ทดสอบและทีมธุรกิจสามารถอ่านได้
  • 📝 คำจำกัดความของขั้นตอน: แต่ละขั้นตอนของ Gherkin จะสอดคล้องกับบล็อกโค้ดที่เขียนด้วยภาษา Ruby Javaหรือภาษาอื่น ๆ ที่รองรับ
  • ⚙️ การตั้งค่าโครงการ: RubyMine หรือ IDE ใดๆ ก็สามารถใช้เป็นที่เก็บโฟลเดอร์ features, โฟลเดอร์ step_definitions และการตั้งค่า runner ได้
  • ตัวอย่างสองข้อ: สถานการณ์การคูณและ Guru99 สถานการณ์จำลองการเข้าสู่ระบบสาธิต แสดงให้เห็นถึงการดำเนินการ BDD แบบครบวงจร
  • 🧪 เวอร์ชันสมัยใหม่: Cucumber-JVM 7.x และ Cucumber Ruby 9.x ยังคงเป็นเวอร์ชันเสถียรที่ใช้กันอยู่ในระบบ CI (Continuous Integration)

Cucumber ต้นฉบับ

ในบทเรียนนี้ คุณจะสร้าง... Cucumber สคริปต์สำหรับทดสอบสองสถานการณ์โดยใช้ไวยากรณ์ Gherkin และไฟล์ Step Definition Cucumber เป็นเฟรมเวิร์ก BDD ยอดนิยมที่เชื่อมโยงไฟล์ Feature ที่เขียนด้วยภาษาธรรมดากับโค้ดทดสอบที่สามารถเรียกใช้งานได้ เพื่อให้นักวิเคราะห์ธุรกิจและนักพัฒนาสามารถทำงานร่วมกันบนข้อกำหนดเดียวกันได้

Cucumber สคริปต์ 1: คูณ 2 Numbers

ในครั้งนี้ก่อน Cucumber ตัวอย่างเช่น คุณจะเขียนไฟล์ Feature อย่างง่ายที่คูณตัวเลขสองตัว แล้วสร้างไฟล์ Step Definition ที่ตรงกันในภาษา Ruby ขั้นตอนการทำงานเดียวกันนี้สามารถใช้ได้หากคุณใช้ Cucumber-JVM 7.x พร้อมด้วย Java หรือ Kotlin ใน IntelliJ IDEA.

ขั้นตอน 1) เปิด RubyMine Editor ผ่านทาง Windows เมนูเริ่มต้น.

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 2) ใน RubyMine Editor ให้คลิกที่ สร้างโปรเจ็กต์ใหม่

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 3) เลือกที่ตั้งโครงการแล้วคลิก "สร้าง"

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 4) สร้างไดเร็กทอรีไฟล์ภายในไดเร็กทอรีหลักของโปรเจ็กต์สำหรับไฟล์ฟีเจอร์ของคุณ

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 5) ตั้งชื่อไดเร็กทอรีว่า "คุณสมบัติ". Cucumber ระบบจะสแกนโฟลเดอร์นี้โดยอัตโนมัติ

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 6) สร้างและบันทึกไฟล์ในโฟลเดอร์ “yourfolder/features/” โดยตั้งชื่อไฟล์ว่า “yourfilename.feature”

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

Cucumber สคริปต์:คูณ 2 Numbers

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 7) ในการดำเนินการตามสถานการณ์จำลอง ให้บันทึกโปรแกรมต่อไปนี้ลงในไฟล์ Feature สังเกตว่าคำหลักของ Gherkin เช่น Feature, Scenario, Given, When และ Then อธิบายพฤติกรรมการทดสอบอย่างไร

Cucumber สคริปต์:คูณ 2 Numbers

Code:

Feature: Multiplication 
  I multiply two numbers 
	Scenario: multiply a and b 
	  Given I have variable a 
	  And I have variable b 
      When I multiplication a and b 
      Then I display the Result

ขั้นตอน 8) ตอนนี้ลองรันไฟล์ Feature ไฟล์แรกของคุณดู

คลิกที่ “เริ่ม Command Prompt ด้วย Ruby”

Cucumber สคริปต์:คูณ 2 Numbers

ผลลัพธ์ที่คุณได้รับแสดงอยู่ด้านล่างนี้

Cucumber สคริปต์:คูณ 2 Numbers

คุณจะพบข้อผิดพลาดเนื่องจากคุณต้องเขียนไฟล์ Step Definition ที่เข้ากันได้กับไฟล์ Feature

ขั้นตอน 9) สร้างไฟล์ Step Definition สำหรับไฟล์ Feature ของคุณ

สร้างโฟลเดอร์ใหม่ในโปรแกรมแก้ไข RubyMine โดยตั้งชื่อว่า “step_definition”

Cucumber สคริปต์:คูณ 2 Numbers

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 10) บันทึกไฟล์ลงในโฟลเดอร์ “yourfolder/features/step_definitions” โดยตั้งชื่อว่า test_step.rb

Cucumber สคริปต์:คูณ 2 Numbers

Cucumber สคริปต์:คูณ 2 Numbers

ขั้นตอน 11) เขียนโค้ดต่อไปนี้ลงในไฟล์ Step Definition โดยแต่ละบล็อกจะตรงกับขั้นตอน Gherkin จากไฟล์ Feature

Cucumber สคริปต์:คูณ 2 Numbers

Code :

Given(/^I have variable a$/) do 
  @a = 50
end

And(/^I have variable b$/) do 
  @b = 70 
end

When(/^I multiplication a and b$/) do 
  @mul = @a * @b
end

Then(/^I display the Result$/) do 
  puts "Multiplication of #{@a} and #{@b} is #{@mul}"
end

ขั้นตอน 12) เรียกใช้ไฟล์ Feature อีกครั้ง

Cucumber สคริปต์:คูณ 2 Numbers

ผลลัพธ์ดังแสดงด้านล่าง

Cucumber สคริปต์:คูณ 2 Numbers

Cucumber สคริปต์ 2: ตรวจสอบเอาท์พุตเมื่อป้อนรหัสอีเมลหรือไม่ได้ป้อน

ในตัวอย่างที่สองนี้ คุณจะใช้ Ruby ร่วมกับ Watir เพื่อใช้งานเบราว์เซอร์และตรวจสอบความถูกต้องของสถานการณ์การลงทะเบียนสองแบบบนเว็บไซต์ Guruเว็บไซต์สาธิต 99 รูปแบบเดียวกันนี้ใช้ได้เช่นกันหากคุณนำไปใช้ Cucumber-JVM 7.x พร้อมด้วย Selenium เว็บไดรเวอร์และ Java.

ในตัวอย่างนี้เราใช้ ทับทิม.

สถานการณ์ทดสอบตรวจสอบผลลัพธ์เมื่อไม่ได้ป้อนอีเมล

ขั้นตอนการทดสอบ:

  1. เปิดเบราว์เซอร์
  2. ไปที่ https://demo.guru99.com/
  3. Do ไม่ กรอกรหัสอีเมล์
  4. คลิกส่ง

สถานการณ์ทดสอบตรวจสอบผลลัพธ์เมื่อป้อนอีเมล

ขั้นตอนการทดสอบ:

  1. เปิดเบราว์เซอร์
  2. ไปที่ https://demo.guru99.com/
  3. กรอกรหัสอีเมล์
  4. คลิกส่ง

Code ในไฟล์ฟีเจอร์:

Feature: guru99 Demopage Login
To Login in Demopage we have to enter login details
Scenario: Register On Guru99 Demopage without email
Given I am on the Guru99 homepage
When enter blank details for Register
Then error email shown
Scenario: Register On Guru99 Demopage with valid email
Given I am on the Guru99 homepage
When enter details for Register
Then login details shown

Code ในไฟล์ Step Definition:

require 'watir-webdriver'

require 'colorize'

browser = Watir::Browser.new

Given (/^I am on the Guru99 homepage$/)do

browser.goto "https://demo.guru99.com"

end

When (/^enter blank details for Register$/)do

browser.text_field(:name,"emailid").set(" ")

browser.button(:name,"btnLogin").click

end

Then (/^error email shown$/)do

puts " Email is Required".red

browser.close

end

When (/^enter details for Register$/)do

browser = Watir::Browser.new

browser.goto "https://demo.guru99.com"

browser.text_field(:name,"emailid").set("<a href="mailto:guru99@gmail.com">guru99@gmail.com</a>")

browser.button(:name,"btnLogin").click

end

Then (/^login details shown$/)do

puts " Sucessfully register"

browser.close

end

รันโค้ดในหน้าต่าง Command Prompt แล้วคุณจะเห็นผลลัพธ์ดังต่อไปนี้

ตรวจสอบผลลัพธ์เมื่อป้อนรหัสอีเมลหรือไม่ได้ป้อน

คำถามที่พบบ่อย

ไฟล์ Feature คือไฟล์ข้อความธรรมดาที่มีนามสกุล .feature ซึ่งใช้ไวยากรณ์ Gherkin ในการอธิบายฟีเจอร์หนึ่งของแอปพลิเคชัน โดยจะจัดกลุ่ม Scenario ที่เกี่ยวข้องซึ่งเขียนด้วยขั้นตอน Given, When และ Then ไว้ด้วยกัน เพื่อให้ผู้ที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถอ่านและตรวจสอบพฤติกรรมร่วมกับนักพัฒนาได้

แต่ละขั้นตอนของ Gherkin เป็นเพียงข้อความเท่านั้น Cucumber จำเป็นต้องมี Step Definition ที่เชื่อมโยงขั้นตอนดังกล่าวกับโค้ดที่สามารถเรียกใช้งานได้ในภาษา Ruby Javaหรือภาษาอื่น หากไม่มีแผนที่นั้นpingโปรแกรมรันเนอร์รายงานว่าไม่มีขั้นตอนที่กำหนดไว้ และสถานการณ์จำลองไม่สามารถดำเนินการตามตรรกะที่ตั้งใจไว้ได้

Cucumber-JVM 7.x เป็นเวอร์ชันเสถียรในปัจจุบันและแนะนำให้ใช้สำหรับผู้ใช้ใหม่ Java และโปรเจ็กต์ Kotlin Cucumber Ruby 9.x ยังคงเป็นตัวเลือกที่ทันสมัยสำหรับทีมพัฒนา Ruby ทั้งสองเวอร์ชันรองรับ JUnit 5. การประมวลผลแบบขนาน และการกรองตามแท็กสำหรับไปป์ไลน์ CI

ผู้ช่วย AI จะวิเคราะห์เรื่องราวของผู้ใช้ เกณฑ์การยอมรับ และข้อบกพร่องในอดีต เพื่อร่างสถานการณ์ Gherkin ในรูปแบบ Given-When-Then พวกมันจะแนะนำกรณีขอบเขต เส้นทางทางเลือก และคำแนะนำแท็ก เพื่อให้ทีม BDD สามารถครอบคลุมพฤติกรรมได้มากขึ้นโดยไม่ต้องเสียเวลาหลายชั่วโมงในการเขียนไฟล์ Feature แต่ละไฟล์ด้วยมือ

ใช่แล้ว เครื่องมือ AI จะอ่านไฟล์ Feature จับคู่แต่ละขั้นตอนของ Gherkin กับโค้ดที่มีอยู่ และสร้างวิธีการ Step Definition ใหม่ในภาษา Ruby หรือ Javaระบบจะสร้างโค้ดพื้นฐาน รูปแบบนิพจน์ทั่วไปสำหรับพารามิเตอร์ และโครงร่างการตรวจสอบ เพื่อให้นักพัฒนาสามารถปรับแต่งตรรกะทางธุรกิจได้เท่านั้น แทนที่จะต้องเขียนฟังก์ชันเชื่อมต่อทุกอย่างด้วยตนเอง

สรุปโพสต์นี้ด้วย: