قم بإنشاء الأول الخاص بك Cucumber البرنامج النصي (2 أمثلة)

⚡ ملخص ذكي

Cucumber تساعدك ميزة تنفيذ البرامج النصية على تحويل سيناريوهات Gherkin البسيطة إلى اختبارات آلية قابلة للتنفيذ باستخدام ملفات تعريف الخطوات، مما يسمح للفرق بالتحقق من صحة السلوك، ومشاركة النوايا بين أصحاب المصلحة، وإطلاق مشاريع موثوقة قائمة على منهجية تطوير البرمجيات القائمة على السلوك (BDD). Cucumber or Cucumber-JVM.

  • 🥒 أساسيات غيركين: تصف ملفات الميزات السيناريوهات بصيغة Given-When-Then التي يمكن لكل من المختبرين وفرق العمل قراءتها.
  • 📝 تعريفات الخطوات: كل خطوة من خطوات Gherkin تُقابل كتلة برمجية مكتوبة بلغة Ruby، Javaأو لغة أخرى مدعومة.
  • ⚙️ إعداد مشروع: يمكن لـ RubyMine أو أي بيئة تطوير متكاملة استضافة مجلد الميزات، ومجلد تعريفات الخطوات، وتكوين المُشغِّل.
  • ✅ مثالان: سيناريو الضرب و Guruيوضح سيناريو تسجيل الدخول التجريبي رقم 99 تنفيذ BDD من البداية إلى النهاية.
  • 🧪 الإصدارات الحديثة: Cucumber-JVM 7.x و Cucumber لا تزال إصدارات Ruby 9.x هي الإصدارات المستقرة الحالية المستخدمة في جميع خطوط أنابيب التكامل المستمر.

Cucumber سيناريو

في هذا الدرس التعليمي، ستنشئ Cucumber نصوص برمجية لاختبار سيناريوهين باستخدام صيغة Gherkin وملفات تعريف الخطوات. Cucumber هو إطار عمل BDD شائع يربط ملفات الميزات ذات اللغة العادية مع رمز الاختبار القابل للتنفيذ حتى يتمكن محللو الأعمال والمطورون من التعاون في نفس المواصفات.

Cucumber السيناريو 1: اضرب 2 Numbers

في هذا أولا Cucumber على سبيل المثال، ستكتب ملف ميزة بسيطًا يقوم بضرب رقمين، ثم تنشئ ملف تعريف خطوة مطابقًا في لغة روبي. وينطبق نفس سير العمل إذا كنت تستخدم Cucumber-JVM 7.x مع Java أو Kotlin في IntelliJ IDEA.

الخطوة 1) افتح محرر RubyMine عبر Windows قائمة البدأ.

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 2) في محرر RubyMine، انقر على إنشاء مشروع جديد.

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 3) حدد موقع المشروع وانقر على "إنشاء".

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 4) أنشئ مجلد ملفات داخل جذر المشروع لملفات الميزات الخاصة بك.

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 5) قم بتسمية الدليل باسم "ميزات". Cucumber سيتم فحص هذا المجلد تلقائيًا.

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 6) قم بإنشاء وحفظ الملف في "yourfolder/features/" بالاسم "yourfilename.feature".

انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو

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) الآن قم بتشغيل ملف الميزة الأول.

انقر على "بدء موجه الأوامر باستخدام روبي".

Cucumber البرنامج النصي: ضرب 2 Numbers

يتم عرض الناتج الذي تتلقاه أدناه.

Cucumber البرنامج النصي: ضرب 2 Numbers

ستظهر لك رسالة خطأ لأنه يجب عليك كتابة ملف تعريف الخطوة الذي يقترن بملف الميزة.

الخطوة 9) أنشئ ملف تعريف الخطوة لملف الميزة الخاص بك.

قم بإنشاء مجلد جديد في محرر RubyMine باسم "step_definition".

Cucumber البرنامج النصي: ضرب 2 Numbers

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 10) احفظ الملف في "yourfolder/features/step_definitions" باسم test_step.rb.

Cucumber البرنامج النصي: ضرب 2 Numbers

Cucumber البرنامج النصي: ضرب 2 Numbers

الخطوة 11) اكتب الكود التالي في ملف تعريف الخطوات. كل كتلة برمجية تُطابق خطوة من خطوات Gherkin الموجودة في ملف الميزات.

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) أعد تشغيل ملف الميزة.

Cucumber البرنامج النصي: ضرب 2 Numbers

النتيجة مبينة أدناه.

Cucumber البرنامج النصي: ضرب 2 Numbers

#1 الأفضل بشكل عاماختبار التطبيق العالمي
9.8/ 10
★ ★ ★ ★ ★
احصل على عرض تجريبي مجاني
PractiTest
9.5/ 10
★ ★ ★ ★ ★
قم بزيارة : PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
قم بزيارة : Testiny
أفضل من أجلاختبار الجمهور وضمان الجودةإدارة الاختبارفرق ضمان الجودة الصغيرة والمتوسطة
ميزة رئيسية✓اختبار التكامل مع جهات خارجية✓إدارة الاختبارات المركزية✓حالات الاختبار اليدوية والآلية
آلية الربط✓جيرا، Slack, TestRail✓جيرا، Jenkins, Slack✓Jira، GitHub، GitLab
تجربة مجانيّةالتجريب المجانيشنومكس يوم التجربة المجانيةالتجريب المجاني
احصل على عرض تجريبي مجانيقم بزيارة : PractiTestقم بزيارة : Testiny

Cucumber البرنامج النصي 2: التحقق من الناتج عند إدخال معرف البريد الإلكتروني أو عدم إدخاله

في هذا المثال الثاني، ستستخدم لغة روبي مع Watir لتشغيل متصفح والتحقق من صحة سيناريوهين للتسجيل على Guru99 موقعًا تجريبيًا. تنطبق نفس الأنماط إذا اعتمدت Cucumber-JVM 7.x مع Selenium WebDriver و 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 في ملف تعريف الخطوة:

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

قم بتشغيل الكود في موجه الأوامر وسترى المخرجات التالية.

التحقق من الناتج عند إدخال معرف البريد الإلكتروني أو عدم إدخاله

الأسئلة الشائعة

ملف الميزة هو ملف نصي عادي بامتداد .feature يستخدم صيغة Gherkin لوصف ميزة واحدة من ميزات التطبيق. وهو يجمع السيناريوهات ذات الصلة المكتوبة بخطوات Given وWhen وThen، بحيث يمكن لأصحاب المصلحة غير التقنيين قراءة السلوك والتحقق منه جنبًا إلى جنب مع المطورين.

كل خطوة من خطوات Gherkin عبارة عن نص فقط. Cucumber يحتاج إلى تعريف خطوة يربط الخطوة بشفرة قابلة للتنفيذ في لغة روبي، Javaأو بلغة أخرى. بدون تلك الخريطةping، يقوم برنامج التشغيل بالإبلاغ عن خطوات غير محددة ويفشل السيناريو في تنفيذ المنطق المقصود.

Cucumberيُعد JVM 7.x الإصدار المستقر الحالي، ويُنصح باستخدامه للمبتدئين. Java ومشاريع كوتلين. Cucumber لا تزال Ruby 9.x الخيار الأمثل لفرق تطوير Ruby الحديثة. يدعم كلا الإصدارين JUnit 5، التنفيذ المتوازي، والتصفية القائمة على العلامات لخطوط أنابيب التكامل المستمر.

تقوم مساعدات الذكاء الاصطناعي بتحليل قصص المستخدمين ومعايير القبول والعيوب السابقة لصياغة سيناريوهات Gherkin بصيغة Given-When-Then. كما تقترح حالات استثنائية ومسارات بديلة واقتراحات للوسوم، مما يُمكّن فرق تطوير البرمجيات القائمة على السلوك (BDD) من تغطية المزيد من السلوكيات دون الحاجة إلى قضاء ساعات في كتابة كل ملف ميزة يدويًا.

نعم. تقرأ أدوات الذكاء الاصطناعي ملفات الميزات، وتطابق كل خطوة من خطوات Gherkin مع التعليمات البرمجية الموجودة، وتُنشئ طرق تعريف الخطوات الجديدة في Ruby أو Java. يقومون بإنشاء قوالب جاهزة، وتعبيرات نمطية للمعلمات، ونماذج تأكيدات، بحيث يقوم المطورون فقط بتحسين منطق العمل بدلاً من كتابة كل دالة ربط يدويًا.

تلخيص هذه التدوينة بـ: