ما هو جركن؟ وكيفية استخدام جركن في اختبار السلوك التوافقي (BDD) واختبار واجهات برمجة التطبيقات (API)

Ashley Goolam

Ashley Goolam

17 ديسمبر 2025

ما هو جركن؟ وكيفية استخدام جركن في اختبار السلوك التوافقي (BDD) واختبار واجهات برمجة التطبيقات (API)

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات

هل ترغب في كتابة حالة اختبار واضحة وبسيطة لدرجة أن مدير منتجك يمكنه فهمها؟ هذا هو سحر Gherkin! إذا لم تكن قد جربته، فأنت تفوت إحدى أكثر الطرق فعالية لسد الفجوة بين متطلبات العمل والاختبار الآلي. تعلم كيفية استخدام Gherkin للاختبار لا يقتصر فقط على تعلم بناء الجملة، بل يتعلق بتعلم لغة يمكن لفريقك بأكمله التحدث بها.

سيرشدك هذا الدليل خلال كل ما تحتاج لمعرفته حول كيفية استخدام Gherkin للاختبار، من بناء الجملة الأساسي إلى الميزات المتقدمة، مع التركيز بشكل خاص على اختبار API وكيف يمكن للأدوات الحديثة مثل Apidog تحويل سيناريوهات الاختبار الخاصة بك إلى حالات اختبار قابلة للتنفيذ دون المتاعب المعتادة.

button

ما هو Gherkin ولماذا يجب أن تهتم؟

Gherkin هي لغة خاصة بالمجال قابلة للقراءة من قبل الأعمال، مصممة لوصف السلوك. تستخدم بناء جملة بسيطًا من الكلمات الرئيسية لتعريف سلوكيات البرامج بطريقة يفهمها أصحاب المصلحة الفنيون وغير الفنيين على حد سواء. عندما تتقن كيفية استخدام Gherkin للاختبار، فإنك تنشئ وثائق حية تخدم ثلاثة أغراض: تحديد المتطلبات، وتصميم حالات الاختبار، وتنفيذ الاختبار الآلي.

gherkin

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

اللغة مستقلة عن التنفيذ. يمكن لنفس سيناريو Gherkin أن يدفع اختبارات Selenium لواجهة مستخدم الويب، أو اختبارات RestAssured لواجهة برمجة التطبيقات (API)، أو اختبارات Appium لتطبيق الهاتف المحمول. هذه المرونة تجعل تعلم كيفية استخدام Gherkin للاختبار استثمارًا مهنيًا طويل الأمد.

بناء جملة Gherkin: أساس الاختبارات القابلة للقراءة

يبدأ فهم كيفية استخدام Gherkin للاختبار بإتقان بناء جملته. تستخدم ملفات Gherkin امتداد .feature وتتكون من عدد قليل من الكلمات الرئيسية الأساسية:

الكلمات الرئيسية الأساسية

إليك أبسط مثال ممكن:

Feature: User login
  As a registered user
  I want to log in to my account
  So that I can access my dashboard

  Scenario: Successful login with valid credentials
    Given I am on the login page
    When I enter "test@example.com" as username
    And I enter "ValidPass123" as password
    And I click the login button
    Then I should be redirected to the dashboard
    And I should see a welcome message

لاحظ كيف تبدو هذه وكأنها لغة إنجليزية عادية. هذه هي النقطة. عندما تتعلم كيفية استخدام Gherkin للاختبار، يكون هدفك الأول هو الوضوح، وليس الذكاء.

كتابة أول اختبار API باستخدام Gherkin

بينما نشأت Gherkin لاختبار واجهة المستخدم، إلا أنها قوية بشكل استثنائي لاختبار API. يتطابق الهيكل تمامًا مع طلبات واستجابات HTTP. دعنا نلقي نظرة على مثال عملي لـ كيفية استخدام Gherkin لاختبار نقطة نهاية API:

Feature: User management API
  As an API client
  I want to manage user accounts
  So that I can integrate with the user system

  Scenario: Create a new user successfully
    Given the API endpoint "/api/users"
    And I have valid authentication credentials
    When I send a POST request with:
      | field    | value            |
      | email    | test@example.com |
      | password | ValidPass123     |
      | role     | customer         |
    Then the response status should be 201
    And the response should contain "userId"
    And a new user should exist in the database

  Scenario: Attempt to create user with invalid email
    Given the API endpoint "/api/users"
    And I have valid authentication credentials
    When I send a POST request with:
      | field    | value         |
      | email    | invalid-email |
      | password | ValidPass123  |
    Then the response status should be 400
    And the response should contain "Invalid email format"

يوضح هذا المثال كيفية استخدام Gherkin لاختبار واجهات برمجة التطبيقات (APIs) مع جداول البيانات لحمولات الطلب. يتطابق هيكل Given-When-Then مباشرة مع مفاهيم اختبار API: الإعداد، والإجراء، والتأكيد.

ميزات Gherkin المتقدمة للسيناريوهات المعقدة

بمجرد إتقان الأساسيات، ستجعل هذه الميزات المتقدمة ميزات Gherkin الخاصة بك أكثر قابلية للصيانة وقوة.

Background: تجنب التكرار

تُنفذ الكلمة الرئيسية Background قبل كل سيناريو في ملف الميزة، مما يلغي خطوات الإعداد المكررة.

Feature: Shopping cart API

  Background:
    Given I have a valid authentication token
    And the API endpoint "/api/cart"

  Scenario: Add item to empty cart
    When I send a POST request with item "123" and quantity "1"
    Then the cart should contain 1 item

  Scenario: Add duplicate item to cart
    Given the cart already contains item "123" with quantity "2"
    When I send a POST request with item "123" and quantity "1"
    Then the cart should contain item "123" with quantity "3"

عندما تستكشف كيفية استخدام Gherkin للاختبار على نطاق واسع، فإن Background ضروري لمبادئ DRY (لا تكرر نفسك).

Scenario Outlines: الاختبار المعتمد على البيانات

تتيح لك مخططات السيناريو (Scenario Outlines) تشغيل نفس السيناريو باستخدام مجموعات بيانات متعددة، مما يجعل كيفية استخدام Gherkin للاختبار أكثر كفاءة:

Scenario Outline: Login with various credentials
  Given I am on the login page
  When I enter "<username>" as username
  And I enter "<password>" as password
  And I click the login button
  Then I should see "<expected_result>"

  Examples:
    | username          | password     | expected_result         |
    | test@example.com  | ValidPass123 | Welcome to dashboard    |
    | invalid@email.com | ValidPass123 | Invalid credentials     |
    | test@example.com  | wrongpass    | Invalid credentials     |
    |                   | ValidPass123 | Username is required    |
    | test@example.com  |              | Password is required    |

يُنفذ مخطط السيناريو الفردي هذا خمسة اختبارات مميزة. عند تعلم كيفية استخدام Gherkin للاختبار، هذا هو سلاحك السري لتغطية شاملة بدون كوابيس الصيانة.

Tags: تنظيم مجموعة الاختبار الخاصة بك

تساعدك العلامات على تصنيف السيناريوهات وتصفيتها:

@regression @login
Scenario: Successful login
  Given I am on the login page
  When I enter valid credentials
  Then I should be logged in

@smoke @api @critical
Scenario: API health check
  Given the API endpoint "/health"
  When I send a GET request
  Then the response status should be 200

تتيح العلامات التنفيذ الانتقائي: تشغيل اختبارات @smoke فقط للتحقق السريع، أو @regression لتغطية كاملة.

التطوير القائم على السلوك (BDD) و Gherkin

فهم كيفية استخدام Gherkin للاختبار يعني فهم مكان ميلاده: BDD. BDD هو نهج تعاوني حيث يقوم المطورون والمختبرون وأصحاب المصلحة التجاريون بتحديد المتطلبات معًا باستخدام سيناريوهات Gherkin.

يتكون سير العمل كالتالي:

  1. الاكتشاف: يجتمع الفريق لمناقشة ميزة جديدة، وطرح الأسئلة والتقاط الأمثلة.
  2. الصياغة: تُكتب الأمثلة الواقعية كسيناريوهات Gherkin.
  3. الأتمتة: يطبق المطورون تعريفات الخطوات التي تجعل السيناريوهات قابلة للتنفيذ.
  4. التحقق: تُشغّل السيناريوهات المؤتمتة كا اختبارات تراجع.

يحدث السحر في مرحلة الاكتشاف. عندما يقول صاحب المنتج: "يجب أن يتمكن المستخدمون من إعادة تعيين كلمة المرور الخاصة بهم"، يسأل الفريق: "ماذا يحدث إذا انتهت صلاحية رمز إعادة التعيين؟" تتحول هذه المحادثة إلى سيناريو Gherkin قبل كتابة أي رمز.

تضمن BDD أن كيفية استخدام Gherkin للاختبار يتوافق مع تقديم قيمة الأعمال، وليس مجرد التحقق الفني.

bdd
التطوير الموجه بالسلوك

نصوص اختبار Gherkin: من السيناريوهات إلى التنفيذ

سيناريو Gherkin هو مجرد نص حتى تربطه بالتعليمات البرمجية. تعمل تعريفات الخطوات على سد هذه الفجوة. إليك كيف يصبح كيفية استخدام Gherkin للاختبار قابلاً للتنفيذ:

// تعريف خطوة Cucumber.js لسيناريو تسجيل الدخول
const { Given, When, Then } = require('@cucumber/cucumber');
const { expect } = require('chai');
const apiClient = require('./api-client');

Given('I have valid authentication credentials', async function() {
  this.authToken = await apiClient.getAuthToken('test@example.com', 'ValidPass123');
});

When('I send a POST request with:', async function(dataTable) {
  const requestData = dataTable.rowsHash();
  this.response = await apiClient.post('/api/users', requestData, this.authToken);
});

Then('the response status should be {int}', function(statusCode) {
  expect(this.response.status).to.equal(statusCode);
});

تُعيّن كل خطوة Gherkin إلى دالة. تُنفذ الدالة منطق الاختبار الفعلي باستخدام إطار عمل الأتمتة الذي اخترته. يعد فصل الاهتمامات هذا هو السبب وراء بقاء كيفية استخدام Gherkin للاختبار قابلاً للصيانة— نادرًا ما يتغير منطق الأعمال في Gherkin بينما يمكن إعادة هيكلة كود التنفيذ بحرية.

كيف يقوم Apidog بأتمتة اختبار API

اختبار API اليدوي مضيعة للوقت — صياغة الطلبات، وإدارة المصادقة، والتحقق من الاستجابات، وتوثيق النتائج لكل نقطة نهاية سرعان ما يصبح غير مستدام. Apidog يزيل هذا العبء من خلال الأتمتة المدعومة بالذكاء الاصطناعي التي تحول مواصفات API الخاصة بك إلى مجموعة اختبار كاملة في دقائق.

ما عليك سوى استيراد مواصفات OpenAPI الخاصة بك وسيقوم الذكاء الاصطناعي الخاص بـ Apidog (المتصل بمفتاحك الخاص بـ Claude أو OpenAI أو Gemini) بإنشاء حالات اختبار شاملة تلقائيًا عبر سيناريوهات إيجابية وسلبية وحدودية وأمنية. يتضمن كل اختبار حمولات مكونة مسبقًا، ورموز حالة متوقعة، وتأكيدات الاستجابة. تقوم أنت بمراجعة وتحسين بدلاً من الكتابة من البداية، وتتحول من مؤلف اختبار إلى منسق اختبار.

connect your AI to Apidog

يتم التنفيذ من خلال واجهة مرئية موحدة — لا يلزم وجود تعليمات برمجية. قم بتشغيل الاختبارات بشكل فردي أو جماعي بنقرة واحدة، ويتعامل Apidog مع المصادقة وإدارة البيانات وتبديل البيئة والتحقق في الوقت الفعلي تلقائيًا. يعني التكامل مع خطوط أنابيب CI/CD تشغيل مجموعتك بالكامل مع كل إصدار، واكتشاف الأخطاء على الفور. ما كان يستغرق أيامًا من الجهد اليدوي يستغرق الآن دقائق، مما يحرر فريقك للتركيز على قرارات الجودة الاستراتيجية بدلاً من المهام المتكررة.

button
testing api endpoints in apidog

أفضل الممارسات لكتابة اختبارات Gherkin فعالة

إتقان كيفية استخدام Gherkin للاختبار يعني اتباع هذه الممارسات المجربة:

  1. اكتب للبشر أولاً: إذا لم يتمكن أحد أصحاب المصلحة غير التقنيين من فهم السيناريو الخاص بك، فأعد كتابته. تجنب المصطلحات التقنية في خطوات Gherkin.
  2. حافظ على استقلالية السيناريوهات: يجب أن يقوم كل سيناريو بإعداد بياناته الخاصة وتنظيفها بعد الانتهاء. تخلق التبعيات مجموعات اختبار هشة.
  3. استخدم الأسلوب التقريري بدلاً من الأمر: اكتب ما تختبره، وليس كيف. "عندما أنشئ مستخدمًا" أفضل من "عندما أنقر على زر مستخدم جديد وأملأ النموذج وأنقر إرسال."
  4. حدد طول السيناريو: إذا كان السيناريو يحتوي على أكثر من 7-8 خطوات، فمن المحتمل أنه يختبر الكثير. قسمه إلى سيناريوهات متعددة ومركزة.
  5. وسم بشكل استراتيجي: استخدم العلامات للتنظيم (@smoke, @regression, @api)، وليس للبيانات الوصفية التي تنتمي إلى وصف السيناريو.
  6. حافظ على قابلية إعادة استخدام الخطوات: اكتب خطوات عامة مثل "أرسل طلب POST إلى {string}" بدلاً من "أرسل طلب POST إلى /api/users". تقلل الخطوات القابلة لإعادة الاستخدام من الصيانة بشكل كبير.

الأسئلة المتداولة

س1: هل أحتاج إلى معرفة البرمجة لكتابة اختبارات Gherkin؟

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

س2: هل يمكن لـ Apidog حقًا إنشاء سيناريوهات Gherkin تلقائيًا؟

ج: نعم، ولكن مع توضيح بسيط. يستخدم Apidog الذكاء الاصطناعي (المتصل بمفتاحك الخاص بـ Claude أو OpenAI أو Gemini) لتحليل مواصفات OpenAPI الخاصة بك وإنشاء حالات اختبار منظمة. بينما لا يحتوي على زر "تصدير إلى Gherkin" بنقرة واحدة، يمكنك مطالبة الذكاء الاصطناعي بتنسيق حالات الاختبار هذه في بناء جملة Given/When/Then. يتطابق الإخراج المُنشأ تمامًا مع هيكل Gherkin لأن الذكاء الاصطناعي يعرف بالفعل نقاط النهاية والأساليب ومخططات الطلبات والاستجابات المتوقعة من مواصفاتك.

س3: ما الذي يجعل مواصفات OpenAPI جيدة لإنشاء سيناريوهات Gherkin؟

ج: كلما كانت مواصفاتك أغنى، كانت Gherkin أفضل. قم بتضمين أوصاف عمليات واضحة، وقيود حقول مفصلة (الحد الأدنى/الأقصى للطول، الأنماط، التعدادات)، وقيم أمثلة، واستجابات أخطاء وصفية. يستخدم الذكاء الاصطناعي في Apidog هذه التفاصيل لإنشاء سيناريوهات أكثر دقة — تحويل "البريد الإلكتروني: سلسلة" بسيطة إلى حالات اختبار محددة للتنسيق الصحيح، والبريد الإلكتروني المفقود، والتنسيق غير الصالح، وانتهاكات الحد الأقصى للطول.

س4: كيف تختلف Gherkin عن حالات اختبار API التقليدية في أدوات مثل Postman؟

ج: غالبًا ما تكون حالات اختبار API التقليدية أمرية ("قم بتعيين الرأس X، أرسل POST إلى Y، تأكد من الحالة Z"). Gherkin وصفية — تصف السلوك بلغة الأعمال ("بالنظر إلى مستخدم صالح، عندما أسجل، يجب أن أتلقى تأكيدًا"). يربط Apidog كلا العالمين من خلال السماح لك بإنشاء Gherkin القابل للقراءة من قبل الأعمال مع توفير محرك التنفيذ التقني في الأسفل. تحصل على الوضوح دون التضحية بالأتمتة.

س5: ماذا لو لم تتطابق سيناريوهات Gherkin التي تم إنشاؤها بواسطة الذكاء الاصطناعي مع أسلوب فريقي؟

ج: هنا تكمن قوة المطالبة. يمكنك توجيه الذكاء الاصطناعي في Apidog بإرشادات محددة: "استخدم بناء جملة Gherkin صارمًا"، "ادمج خطوات Given الشائعة في قسم Background"، أو "أنشئ Scenario Outlines مع جداول Examples". يتكيف الذكاء الاصطناعي مع مخرجاته بناءً على تعليماتك، ويمكنك دائمًا تحرير النتائج قبل الانتهاء منها. فكر في الأمر كفاحص خبير يقوم بصياغة سيناريوهات لك لمراجعتها وصقلها.

الخلاصة

يؤدي إتقان كيفية استخدام Gherkin للاختبار إلى إنشاء لغة مشتركة تجعل الجودة رياضة جماعية. عندما تُقرأ الاختبارات كاللغة الإنجليزية العادية، يشارك الجميع — من المطورين إلى مالكي المنتجات. لكن الاختراق الحقيقي يحدث عندما تجمع هذا الوضوح مع الأتمتة الذكية.

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

ابدأ باستيراد مواصفات OpenAPI الخاصة بك وإنشاء أول مجموعة اختبار مدفوعة بالذكاء الاصطناعي. في غضون دقائق، ستحصل على اختبارات قابلة للتنفيذ توفر الثقة في كل مرحلة من مراحل التطوير — مما يثبت أن الجودة لا تتعلق فقط بالعثور على الأخطاء، بل تتعلق ببناء عملية تصبح فيها الجودة حتمية.

button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات

ما هو جركن؟ وكيفية استخدام جركن في اختبار السلوك التوافقي (BDD) واختبار واجهات برمجة التطبيقات (API)