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

في هذا الدرس التعليمي، ستنشئ Cucumber نصوص برمجية لاختبار سيناريوهين باستخدام صيغة Gherkin وملفات تعريف الخطوات. Cucumber هو إطار عمل BDD شائع يربط ملفات الميزات ذات اللغة العادية مع رمز الاختبار القابل للتنفيذ حتى يتمكن محللو الأعمال والمطورون من التعاون في نفس المواصفات.
Cucumber السيناريو 1: اضرب 2 Numbers
في هذا أولا Cucumber على سبيل المثال، ستكتب ملف ميزة بسيطًا يقوم بضرب رقمين، ثم تنشئ ملف تعريف خطوة مطابقًا في لغة روبي. وينطبق نفس سير العمل إذا كنت تستخدم Cucumber-JVM 7.x مع Java أو Kotlin في IntelliJ IDEA.
الخطوة 1) افتح محرر RubyMine عبر Windows قائمة البدأ.
الخطوة 2) في محرر RubyMine، انقر على إنشاء مشروع جديد.
الخطوة 3) حدد موقع المشروع وانقر على "إنشاء".
الخطوة 4) أنشئ مجلد ملفات داخل جذر المشروع لملفات الميزات الخاصة بك.
الخطوة 5) قم بتسمية الدليل باسم "ميزات". Cucumber سيتم فحص هذا المجلد تلقائيًا.
الخطوة 6) قم بإنشاء وحفظ الملف في "yourfolder/features/" بالاسم "yourfilename.feature".
انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو
الخطوة 7) لتنفيذ السيناريو، احفظ البرنامج التالي داخل ملف Feature. لاحظ كيف تصف كلمات Gherkin الرئيسية مثل Feature وScenario وGiven وWhen وThen سلوك الاختبار.
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) الآن قم بتشغيل ملف الميزة الأول.
انقر على "بدء موجه الأوامر باستخدام روبي".
يتم عرض الناتج الذي تتلقاه أدناه.
ستظهر لك رسالة خطأ لأنه يجب عليك كتابة ملف تعريف الخطوة الذي يقترن بملف الميزة.
الخطوة 9) أنشئ ملف تعريف الخطوة لملف الميزة الخاص بك.
قم بإنشاء مجلد جديد في محرر RubyMine باسم "step_definition".
الخطوة 10) احفظ الملف في "yourfolder/features/step_definitions" باسم test_step.rb.
الخطوة 11) اكتب الكود التالي في ملف تعريف الخطوات. كل كتلة برمجية تُطابق خطوة من خطوات Gherkin الموجودة في ملف الميزات.
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: التحقق من الناتج عند إدخال معرف البريد الإلكتروني أو عدم إدخاله
في هذا المثال الثاني، ستستخدم لغة روبي مع Watir لتشغيل متصفح والتحقق من صحة سيناريوهين للتسجيل على Guru99 موقعًا تجريبيًا. تنطبق نفس الأنماط إذا اعتمدت Cucumber-JVM 7.x مع Selenium WebDriver و Java.
في هذا المثال نستخدم روبي.
سيناريو الاختبار: تحقق من المخرجات عند عدم إدخال معرف البريد الإلكتروني.
خطوات الاختبار:
- المتصفح المفتوحة
- إذهب إلى https://demo.guru99.com/
- Do لست أدخل معرف البريد الإلكتروني
- انقر فوق إرسال
سيناريو الاختبار: تحقق من المخرجات عند إدخال معرف البريد الإلكتروني.
خطوات الاختبار:
- المتصفح المفتوحة
- إذهب إلى https://demo.guru99.com/
- أدخل معرف البريد الإلكتروني
- انقر فوق إرسال
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
قم بتشغيل الكود في موجه الأوامر وسترى المخرجات التالية.





















