مولّد حالات اختبار من OpenAPI

تعمل في المتصفح الأتمتة

حلّل المواصفة وأنتج حالات اختبار لكل عملية: المسار الطبيعي (happy path)، والحقول المطلوبة المفقودة، والأنواع غير الصالحة، والقيم الحدّية، والوصول غير المصرّح به، ورموز الحالة غير المتوقّعة — قابلة للتصدير بصيغة CSV أو Markdown أو JSON.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هو اختبار عقود API؟

عقد API هو الوصف المتفق عليه للواجهة — نقاط النهاية والمعاملات ومخططات الطلب والاستجابة ورموز الحالة — ويُكتب عادةً كمستند OpenAPI. اختبار العقد يقارن ما تعيده الخدمة فعلياً بذلك الوصف، فيُكشف الحقل المعاد تسميته أو النوع المتغيّر لدى المنتِج أو المستهلك قبل أن يعطّل الطرف الآخر.

اقرأ الدليل: ما هو اختبار API؟ وكيف تختبر REST API

كيفية استخدام مولّد حالات اختبار من OpenAPI

  1. الصق المواصفة (أو حمّل المثال).
  2. اختيارياً صفِّ النتائج على عمليات محدّدة واختر الفئات التي تريدها.
  3. اختر صيغة التصدير ثم ولّد.
  4. راجع الجدول، ثم انسخ التصدير أو نزّله لأداة إدارة الاختبارات لديك.

مزايا مولّد حالات اختبار من OpenAPI

  • يحلّل OpenAPI 3.x وSwagger 2.0 بصيغة JSON أو YAML، مع حلّ مراجع $ref المحلية
  • يولّد لكل عملية حالات المسار الطبيعي، والحقول المطلوبة المفقودة، والأنواع غير الصالحة، والقيم الحدّية، والمصادقة، وعدم العثور، والأخطاء الموثّقة، والطرق، وأنواع المحتوى
  • أمثلة طلبات بقيم اصطناعية واقعية لمعاملات المسار والاستعلام والأجسام
  • الأولويات والشروط المسبقة والخطوات والحالة المتوقّعة والنتيجة المتوقّعة في كل حالة
  • تصفية حسب العملية والفئة؛ وتصدير بصيغة Markdown أو JSON أو CSV

مثال على مولّد حالات اختبار من OpenAPI

نقطة نهاية إنشاء كتاب

الإدخال:

المثال المحمّل، مع التصفية "POST /books": جسم مطلوب { title (⁦1–200⁩ حرف)، isbn (^[0-9]{13}$)، price ⁦0–10000⁩ }، وأمان bearer، والحالتان الموثّقتان 201 و409

النتيجة:

24 حالة، منها:
TC-001 Create a book — valid request succeeds (201)
TC-003 Create a book — body without required field "title" (400)
TC-008 Create a book — wrong type for body field "price" (number → "abc") (400)
TC-017 Create a book — body "price" at below minimum (-1) (400)
TC-019 Create a book — no credentials (401)
TC-022 Create a book — documented 409: ISBN already exists (409)

الأسئلة الشائعة حول مولّد حالات اختبار من OpenAPI

ما حالات الاختبار التي تُولَّد؟

لكل عملية: المسار الطبيعي، وحذف المعاملات الاختيارية، وغياب المعاملات وحقول الجسم المطلوبة، والأنواع غير الصالحة، والقيم الحدّية (الحدّ الأدنى/الأقصى والطول وعدد العناصر)، والوصول دون مصادقة/الممنوع، والمعرّفات غير المعروفة (404)، وحالات الخطأ الموثّقة، والطرق غير المدعومة (405)، وأنواع المحتوى غير المدعومة (415).

هل يمكنني التركيز على عملية واحدة؟

نعم — صفِّ حسب الطريقة أو المسار أو operationId أو الملخّص أو الوسم (مثل "POST /books" أو "createBook")، واختر الفئات التي تحتاجها.

ما الصيغ التي يمكنني التصدير إليها؟

Markdown (جاهز لصفحة ويكي أو طلب دمج)، وJSON (للأدوات)، وCSV (لجداول البيانات أو الاستيراد إلى أدوات إدارة الاختبارات). كما يمكن تنزيل الجدول بصيغة CSV.

هل يدعم Swagger 2.0؟

نعم. تُعالج معاملات الجسم وdefinitions وsecurityDefinitions في Swagger 2.0 جنباً إلى جنب مع OpenAPI 3.x.

ملاحظات تقنية

تُشتق الحالات الحدّية من minimum/maximum والحدود الحصرية وminLength/maxLength وmaxItems؛ وعندما لا تكون لحقل رقمي حدود، تُقترح قيم صفرية وسالبة وكبيرة جداً، ويحصل الحقل النصي العادي في الجسم على قيمة فارغة وأخرى من 10,000 حرف. ولا تُستخدم الكلمة المفتاحية pattern لاشتقاق الحالات، ولا تتجاوز الحالات الحدّية ثماني حالات لكل عملية، بترتيب الحقول. وتُقرأ متطلبات الأمان من مستوى العملية أو من المتطلبات العامة.

المراجع

  • OpenAPI SpecificationOpenAPI Initiativeالمعيار لوصف واجهات REST: المسارات والعمليات والمعاملات والمخططات والاستجابات وأنظمة الأمان.
  • JSON Schema SpecificationJSON Schemaالمفردات المستخدمة لوصف بنية مستندات JSON والتحقق منها (الأنواع والحقول المطلوبة والصيغ).
  • RFC 9110: HTTP SemanticsIETF · 2022معاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.