كيفية إنشاء نصوص اختبار API تلقائيًا من مستندات Swagger

Ashley Goolam

Ashley Goolam

10 سبتمبر 2025

كيفية إنشاء نصوص اختبار API تلقائيًا من مستندات Swagger

Apidog للمؤسسات

نشر محلي

SSO & RBAC

متوافق مع SOC 2

استكشاف Apidog Enterprise

إذا وجدت نفسك يومًا ما تحدق في ملف Swagger ضخم، تتساءل كيف ستقوم بكتابة نصوص اختبار يدوية لكل نقطة نهاية API، فأنت لست وحدك. في عالم تطوير واجهات برمجة التطبيقات (API)، أصبحت Swagger (المعروفة الآن بشكل أكثر شيوعًا باسم OpenAPI) المعيار الذهبي لتوثيق وتصميم واجهات برمجة التطبيقات. ولكن السحر الحقيقي يحدث عندما تقوم بأتمتة إنشاء نصوص الاختبار من هذا التوثيق. اليوم، سنتعمق في كيفية إنشاء نصوص اختبار API تلقائيًا من توثيق Swagger. سأشرح لك الأسباب والكيفية وأفضل الأدوات لتسهيل حياتك. بحلول النهاية، ستكون مجهزًا لتبسيط سير عمل اختبار واجهات برمجة التطبيقات لديك والتأكد من أن مواصفات OpenAPI الخاصة بك قد تم اختبارها جيدًا.

💡
هل تريد أداة رائعة لاختبار واجهات برمجة التطبيقات (API) تُنشئ توثيق API جميل؟

هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى إنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أكثر بأسعار معقولة!
button
apidog

دعنا نبدأ بالأساسيات. ما هو بالضبط Swagger وOpenAPI؟ Swagger هو الاسم الأصلي لما تطور ليصبح مواصفات OpenAPI (أو OpenAPI باختصار). إنه تنسيق قابل للقراءة آليًا — عادةً ما يكون بتنسيق JSON أو YAML — يصف بنية واجهة برمجة التطبيقات الخاصة بك، بما في ذلك نقاط النهاية والمعلمات وهيئات الطلب/الاستجابة والمزيد. فكر في الأمر على أنه مخطط لواجهة برمجة التطبيقات الخاصة بك. عندما يكون لديك مستند OpenAPI متين، يصبح كنزًا دفينًا للأتمتة. لماذا تهتم بأتمتة إنشاء نصوص الاختبار؟ حسنًا، الاختبار اليدوي يستغرق وقتًا طويلاً، وعرضة للأخطاء، ولا يتوسع مع نمو واجهة برمجة التطبيقات الخاصة بك. تضمن الأتمتة الاتساق، وتكتشف الانحدارات مبكرًا، وتتكامل بسلاسة في مسارات CI/CD. بالإضافة إلى ذلك، مع صعود الخدمات المصغرة وواجهات برمجة التطبيقات المعقدة، يعد الحفاظ على تزامن اختباراتك مع مواصفات Swagger/OpenAPI أمرًا بالغ الأهمية للموثوقية.

الآن، تخيل هذا: تقوم باستيراد ملف Swagger الخاص بك، وفجأة — تظهر نصوص الاختبار، جاهزة للتحقق من صحة نقاط النهاية والمخططات والاستجابات. يبدو حلمًا، أليس كذلك؟ هذا بالضبط ما تفعله أدوات إنشاء اختبارات API التلقائية من توثيق Swagger. في هذه المقالة، سنستكشف نهجًا يعتمد على Python باستخدام OpenAPI Generator و openapi-core، بالإضافة إلى مجموعة من الأدوات القوية الأخرى. سأشاركك حتى نصًا جاهزًا للاستخدام لتبدأ. ولا تقلق، سنستبعد أي حديث غير ضروري عن الأدوات القديمة ونركز على بدائل جديدة مثل Apidog، وهي منصة شاملة رائعة لتصميم واختبار واجهات برمجة التطبيقات والمزيد.

لماذا يعتبر Swagger/OpenAPI مثاليًا لاختبار API المؤتمت

قبل أن ننتقل إلى الأدوات، دعنا نتعمق قليلاً في سبب كون Swagger وOpenAPI مثاليين لهذا الغرض. مواصفات OpenAPI ليست مجرد توثيق — إنها قابلة للتنفيذ. إنها تحدد مخططات للطلبات والاستجابات، وطرق HTTP (GET، POST، PUT، إلخ)، ومتطلبات المصادقة، وحتى رموز الأخطاء. يمكن للأدوات تحليل هذه المواصفات لإنشاء بيانات اختبار واقعية، أو خوادم وهمية (mock servers)، أو مجموعات اختبار كاملة. على سبيل المثال، يمكنك إنشاء تأكيدات تلقائيًا لرموز الحالة، أو التحقق من صحة مخططات JSON، أو حتى محاكاة اختبارات التحميل.

في تجربتي، البدء بملف OpenAPI محدد جيدًا يوفر ساعات. إذا تم بناء واجهة برمجة التطبيقات الخاصة بك باستخدام أطر عمل مثل Spring Boot أو Express.js أو Flask، فإنها غالبًا ما تقوم بإنشاء مستندات Swagger تلقائيًا. ومن هناك، تبدأ الأتمتة. ووفقًا للاتجاهات الأخيرة، تستخدم أكثر من 80% من واجهات برمجة التطبيقات OpenAPI للمواصفات، مما يجعل الاختبار الآلي مهارة لا غنى عنها.

ولكن يكفي نظرية — دعنا ننتقل إلى الجانب العملي. سأبدأ بمثال عملي باستخدام Python، ثم ننتقل إلى أدوات أخرى. بهذه الطريقة، يمكنك اختيار ما يناسب مجموعتك التقنية.

تطبيق عملي: إنشاء نصوص اختبار API باستخدام Python وأدوات OpenAPI

إذا كنت من محبي Python (ومن ليس كذلك؟)، فلنقم ببناء شيء مخصص. سنستخدم مكتبات مثل openapi-core للتحقق من الصحة وpytest لتشغيل الاختبارات. الجمال هنا هو أنه يمكنك إنشاء وظائف اختبار ديناميكيًا بناءً على مواصفات Swagger/OpenAPI الخاصة بك. لا مزيد من كتابة الأكواد المتكررة!

أولاً، قم بتثبيت التبعيات: pip install openapi-core pytest requests pyyaml. احضر ملف Swagger الخاص بك (على سبيل المثال، swagger.yaml) وضعه في دليل مشروعك. يقوم النص البرمجي أدناه بتحميل المواصفات، ويتكرر عبر المسارات والعمليات، وينشئ وظائف pytest التي تصل إلى نقاط نهاية API الخاصة بك، وترسل الطلبات، وتتحقق من صحة الاستجابات مقابل مخطط OpenAPI.

إليك الكود — انسخه والصقه في ملف مثل generate_api_tests.py:

import os
import subprocess
import yaml
import pytest
import requests
from openapi_core import create_spec
from openapi_core.validation.request.validators import RequestValidator
from openapi_core.validation.response.validators import ResponseValidator

# Load Swagger/OpenAPI spec
def load_openapi_spec(spec_path):
    with open(spec_path, 'r') as spec_file:
        spec_dict = yaml.safe_load(spec_file)
    return create_spec(spec_dict)

# Generate test cases dynamically
def generate_tests(spec_path):
    spec = load_openapi_spec(spec_path)
    tests = []

    for path, path_item in spec.paths.items():
        for method, operation in path_item.operations.items():
            test_name = f"test_{method.upper()}_{path.replace('/', '_')}"
            tests.append({
                'name': test_name,
                'method': method.upper(),
                'path': path,
                'operation': operation
            })
    return tests

# Pytest test function generator
def create_test_function(test_case):
    def test_func():
        base_url = "http://localhost:8080"  # Replace with your API base URL
        url = f"{base_url}{test_case['path']}"
        response = requests.request(method=test_case['method'], url=url)
        
        # Validate response against OpenAPI spec
        spec = load_openapi_spec("swagger.yaml")  # Path to your Swagger file
        response_validator = ResponseValidator(spec)
        result = response_validator.validate(response=response)
        result.raise_for_errors()
        
        assert response.status_code in [200, 201], f"Expected 200/201, got {response.status_code}"
    
    test_func.__name__ = test_case['name']
    return test_func

# Dynamically add tests to pytest
def pytest_generate_tests(metafunc):
    spec_path = "swagger.yaml"  # Path to your Swagger file
    tests = generate_tests(spec_path)
    for test_case in tests:
        test_func = create_test_function(test_case)
        setattr(metafunc.cls, test_case['name'], test_func)

# Example test class
class TestAPI:
    pass

للبدء: قم بتحديث base_url إلى عنوان API الخاص بك (على سبيل المثال، خادم محلي أو بيئة اختبار). قم بتشغيل pytest generate_api_tests.py -v، وشاهد كيف يقوم بإنشاء وتنفيذ الاختبارات لكل نقطة نهاية. يتعامل هذا النص البرمجي مع التحقق الأساسي من الصحة، ولكن يمكنك توسيعه ليشمل معلمات الاستعلام، أو رموز المصادقة، أو التأكيدات المخصصة. إنه أساس رائع لاختبار API المدعوم بـ Swagger/OpenAPI — قابل للتطوير ومتوافق مع المواصفات.

لإنشاء أكثر تقدمًا، تحقق من OpenAPI Generator. إنها أداة سطر أوامر (CLI) يمكنها إخراج هياكل اختبار في Python أو Java أو حتى JavaScript. قم بتثبيتها عبر npm install @openapitools/openapi-generator-cli -g، ثم قم بتشغيل openapi-generator generate -i swagger.yaml -g python-pytest -o ./tests. بوم — ملفات pytest جاهزة! للبدء: قم بتنزيل مواصفاتك، قم بتشغيل الأمر، عدّل الكود الذي تم إنشاؤه، وادمجه في مستودعك.

openapi generator

خيار آخر قوي هو Dredd، أداة مخصصة لاختبار API. إنها خفيفة الوزن وتركز على اختبار العقود (contract testing) مقابل مواصفات OpenAPI الخاصة بك. ابدأ بتثبيتها عن طريق npm install -g dredd، ثم dredd init في مجلد مشروعك. وجهها إلى ملف Swagger الخاص بك في التكوين، وقم بتشغيل dredd. ستتيح لك الخطافات (hooks) تخصيص الخطافات لإعداد البيانات. مثالية للتحقق السريع من صحة API بناءً على المواصفات.

dredd

استبدال العمل اليدوي الشاق: تقديم Apidog لأتمتة اختبار API

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

كيف تبدأ مع Apidog؟ توجه إلى apidog.com وقم بتنزيل تطبيق سطح المكتب (متوفر لأنظمة Windows و Mac و Linux) أو استخدم إصدار الويب. أنشئ مشروعًا جديدًا، واستورد ملف Swagger/OpenAPI الخاص بك عبر زر "استيراد" (يدعم JSON/YAML مباشرة). بمجرد الاستيراد، انتقل إلى وحدة "الاختبارات"، وانقر على "+" لإنشاء سيناريو جديد، وحدد نقاط النهاية من مواصفاتك.

apidog tests

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

button

أفضل الأدوات لإنشاء اختبارات API تلقائيًا من Swagger/OpenAPI

بالإضافة إلى النصوص البرمجية المخصصة و Apidog، هناك بعض الأدوات القوية المصممة خصيصًا لهذا الغرض. دعنا نفصلها، مع بدايات سريعة لكل منها. تم تحسين هذه الأدوات لعمليات البحث الملائمة لتحسين محركات البحث (SEO) مثل "أفضل مولدات اختبارات Swagger API" أو "أدوات اختبار OpenAPI المؤتمتة".

1. أدوات Swagger و ReadyAPI (سابقًا SmartBear)

ReadyAPI هو أداة قوية لاختبار API الشامل. يمكنك استيراد تعريف OpenAPI الخاص بك مباشرة إلى Swagger أو ReadyAPI لإنشاء اختبارات وظيفية وأمنية وتحميل تلقائيًا. يتعامل مع التحقق من صحة المخطط، والتأكيدات، وحقن البيانات، وحتى إنشاء اختبارات التحميل بنقرة واحدة.

للبدء: قم بزيارة https://swagger.io/solutions/api-testing/ وقم بتنزيل ReadyAPI (تتوفر نسخة تجريبية مجانية). قم باستيراد ملف Swagger الخاص بك عبر معالج "الاستيراد"، واختر "إنشاء مجموعة اختبار"، واختر أنواع الاختبار (على سبيل المثال، وظيفي لفحص نقاط النهاية). قم بتخصيص التأكيدات في المحرر المرئي، ثم قم بتشغيل الاختبارات أو جدولتها. إنه من الدرجة المؤسسية، مثالي لخطوط أنابيب اختبار API القوية.

ready api

2. إضافة VS Code: API Test Builder

إذا كنت من مستخدمي VS Code، فإن هذه الإضافة ستغير قواعد اللعبة. يقوم API Test Builder بإنشاء نصوص اختبار جاهزة لـ Playwright أو Cypress مباشرة من ملفات Swagger/OpenAPI. يدعم OpenAPI 3.0 و Swagger 2.0، وينشئ أدلة منظمة مع طلبات عينة، وتأكيدات استجابة أساسية (مثل رموز حالة HTTP)، وتنظيم حسب العلامات.

للبدء: قم بالتثبيت من https://marketplace.visualstudio.com/items?itemName=mlourenco.api-test-builder. افتح ملف JSON/YAML الخاص بك في VS Code، انقر بزر الماوس الأيمن، واختر "Swagger to Cypress" أو "Swagger to Playwright". يقوم بإنشاء الملفات تلقائيًا — راجعها، أضف منطقًا مخصصًا، وقم بتشغيلها عبر واجهة سطر الأوامر لإطار عملك. سريع جدًا لمطوري الواجهة الأمامية الذين يدمجون اختبارات API.

api test buider

3. Codespell.ai لإنشاء النصوص البرمجية المؤتمتة

ينقل Codespell.ai الذكاء الاصطناعي إلى المستوى التالي لإنشاء الاختبارات. قم بتحميل مواصفات Swagger الخاصة بك، وسيقوم تلقائيًا بإنشاء نصوص اختبار كاملة متوافقة مع إطار عملك. قم بالمراجعة والتخصيص قبل التنفيذ، مع تكامل سلس مع CI/CD.

للبدء: اذهب إلى https://www.codespell.ai/blog/generating-automated-tests-from-swagger-specs-and-excel-inputs. قم بالتسجيل (الطبقة المجانية)، قم بتحميل ملف OpenAPI الخاص بك، حدد لغتك/إطار عملك (على سبيل المثال، Python، Java)، واضغط على "إنشاء". قم بتحرير الإخراج في محررهم، ثم قم بالتصدير أو التشغيل مباشرة. إنه ذكي بالذكاء الاصطناعي، ويتعامل مع الحالات الهامشية مثل الاختبارات السلبية، ومثالي لغير المبرمجين الذين يدخلون عالم أتمتة API.

codespell ai

4. مولد الاختبارات المدعوم بالذكاء الاصطناعي في Katalon Studio (إصدار تجريبي)

تستخدم ميزة بيتا في Katalon Studio الذكاء الاصطناعي لإنشاء اختبارات API من المواصفات. قم باستيراد OpenAPI/Swagger الخاص بك، وقم بتمكين الإنشاء التلقائي، وحدد نقاط النهاية للحالات التي تركز على التحقق من رمز الحالة.

للبدء: قم بتنزيل Katalon Studio Enterprise من https://docs.katalon.com/katalon-studio/create-test-cases/generate-api-tests-with-ai-beta (الإصدار 9.6.0+). استورد المواصفات في وحدة API، قم بتبديل "إنشاء تلقائي"، اختر نقاط النهاية، وقم بالإنشاء. ملاحظة: إنه إصدار تجريبي، لذا انتبه للمقتطفات غير الصحيحة — قد تحتاج إلى تعديلات يدوية. رائع لاختبار API منخفض الكود في الفرق.

katalon

5. Meqa: مجموعات اختبار بدون كود من مواصفات OpenAPI

Meqa هي أداة CLI/Docker لمجموعات اختبار سهلة. تقرأ ملف OpenAPI YAML الخاص بك، وتنشئ اختبارات قائمة على CRUD وعلى مستوى الكائن، وتستنتج العلاقات، وتوفر خطط YAML قابلة للتحرير.

للبدء: استنسخ من https://github.com/meqaio/swagger_meqa. قم بالتثبيت عبر Docker (docker run meqa/swagger_meqa your-spec.yaml) أو CLI. قم بتشغيل الأمر مع مسار مواصفاتك — سيقوم بإخراج خطط الاختبار. قم بتحرير YAML، ثم نفذ للحصول على التقارير. مثالي لعمليات التحقق من توافق المخطط دون كتابة كود.

meqa

أفضل الممارسات لأتمتة اختبار API باستخدام Swagger/OpenAPI

يا له من مجموعة أدوات! ولكن لجعلها فعالة، اتبع هذه النصائح: تحقق دائمًا من صحة مواصفات OpenAPI الخاصة بك أولاً (استخدم أدوات مثل Apidog و Spectral). ابدأ صغيرًا — اختبر نقطة نهاية واحدة يدويًا، ثم قم بأتمتتها. ادمجها في CI/CD (على سبيل المثال، GitHub Actions مع pytest). تعامل مع المصادقة والمحاكاة للواقعية. راقب تغييرات المواصفات؛ تحافظ أدوات مثل هذه على تزامن الاختبارات.

في الختام، تحول أتمتة نصوص اختبار API من توثيق Swagger الفوضى إلى تحكم. سواء كنت تكتب نصوصًا برمجية في Python، أو تستخدم سحر Apidog الشامل، أو تستفيد من الذكاء الاصطناعي في Codespell، فإن مستقبل اختبار API مؤتمت ومدفوع بالمواصفات. جرب إحداها اليوم — سيشكرك مستقبلك!

button

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

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