DEV Community

Cover image for كيفية جدولة اختبارات API المؤتمتة في Apidog (السحابة، رانر، وCLI)
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيفية جدولة اختبارات API المؤتمتة في Apidog (السحابة، رانر، وCLI)

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

جرّب Apidog اليوم

توفّر Apidog ميزة المهام المجدولة لتشغيل سيناريوهات الاختبار الموجودة لديك بصورة دورية. حدّد السيناريوهات، والتكرار، وبيئة التنفيذ، وRunner، وقنوات التنبيه. لمزيد من السياق، راجع مراقبة API، واعتبر وثائق مهام Apidog المجدولة المرجع الأساسي لواجهة الاستخدام.

ملاحظة: ميزة المهام المجدولة تحمل حاليًا علامة Beta. كما أن عدد التشغيلات المجدولة المتاحة يعتمد على خطتك.

ما الذي تفعله المهام المجدولة؟

تشغّل المهمة المجدولة في Apidog سيناريو اختبار واحدًا أو أكثر وفق دورة متكررة. أمثلة عملية:

  • اختبار انحدار ليلي لمسارات API الحرجة.
  • فحص smoke كل 6 ساعات على بيئة staging.
  • فحص صحي في نهاية الأسبوع لخدمات الإنتاج.

تخزّن المهمة:

  • سيناريوهات الاختبار المطلوب تشغيلها.
  • البيئة المستهدفة.
  • تكرار التشغيل.
  • الـ Runner الذي ينفذ الطلبات.
  • قنوات الإشعار عند النجاح أو الفشل.

لا تخلط هذه الميزة مع أدوات كشط الويب المجدولة. هنا لا تكتب محددات CSS أو قواعد زحف؛ بل تشغّل سيناريوهات API تحتوي على طلبات متسلسلة، تأكيدات، ومتغيرات مستخرجة. الناتج هو تقرير نجاح أو فشل لعقد API، وليس بيانات مكشوطة.

قبل البدء: جهّز Self-hosted Runner

لتشغيل المهام المجدولة، تحتاج إلى Runner مستضاف ذاتيًا.

الـ Runner هو الجهاز الذي ينفذ مجموعة الاختبار. عند بدء مهمة مجدولة، لا تُرسل الطلبات من تطبيق سطح المكتب لديك؛ بل ينفذها الـ Runner الذي اخترته.

يمكن أن يكون الـ Runner:

  • عامل CI دائم التشغيل.
  • خادم صغير.
  • جهازًا افتراضيًا مخصصًا.
  • جهازًا داخل شبكة خاصة أو VPC.

في حقل هدف الـ Runner، قد يظهر خياران:

  • Apidog Cloud — يحمل حاليًا تسمية “قريبًا”.
  • Self-hosted Runner — الخيار المتاح للتنفيذ الآن.

بما أن الطلبات تصدر من شبكة الـ Runner، ستؤثر شبكة الجهاز على النتائج. على سبيل المثال، قد يحصل Runner داخل VPN أو VPC على استجابات مختلفة عن جهازك المحلي بسبب الجدران النارية أو المنطقة الجغرافية أو إعدادات DNS.

إنشاء مهمة مجدولة خطوة بخطوة

لنفرض أن لديك اختبار انحدار ليلي لمتجر إلكتروني يغطي:

  1. تسجيل المستخدم وتسجيل الدخول.
  2. عرض المنتجات.
  3. إضافة منتج إلى السلة.
  4. الدفع باستخدام بطاقة اختبار من Stripe.

1. افتح قسم المهام المجدولة

في عميل Apidog:

  1. افتح وحدة الاختبارات.
  2. من شجرة مجلدات الاختبار، اختر المهام المجدولة.
  3. راجع المهام الحالية ومواعيد تشغيلها من هذا القسم.

هذا هو المكان المركزي لإدارة مهام المشروع ومراقبة ما يتم تشغيله.

2. أنشئ المهمة

انقر + جديد لإنشاء مهمة مجدولة.

استخدم اسمًا واضحًا يصف الهدف والبيئة، مثل:

اختبار الانحدار الليلي — الإنتاج
Enter fullscreen mode Exit fullscreen mode

وأضف وصفًا عمليًا، مثل:

يتحقق من التسجيل، الكتالوج، السلة، والدفع في بيئة الإنتاج.
Enter fullscreen mode Exit fullscreen mode

يمكنك أيضًا إنشاء مجلدات لتجميع المهام، مثل:

المهام المجدولة/
├── production-monitoring/
├── staging-smoke-tests/
└── pre-release-checks/
Enter fullscreen mode Exit fullscreen mode

لكل مهمة مفتاح تشغيل/إيقاف، لذا يمكنك تعطيلها مؤقتًا دون حذف إعداداتها.

3. اختر سيناريوهات الاختبار

ضمن سيناريو الاختبار، اختر سيناريو واحدًا أو أكثر.

مثال لمهمة تغطي مسار شراء كامل:

  • التسجيل وتسجيل الدخول
  • تصفح المنتجات وإضافة إلى السلة
  • الدفع باستخدام بطاقة اختبار Stripe

يمكن أن يملك كل سيناريو إعدادات تنفيذ مستقلة، مثل:

  • البيئة.
  • بيانات الاختبار.
  • عدد التكرارات.
  • التأخير بين الطلبات.
  • حفظ الطلبات والاستجابات.

إذا كانت كل السيناريوهات تستخدم الإعدادات نفسها، فعّل خيار استخدام نفس تكوين التنفيذ لتطبيق إعداد واحد عليها جميعًا.

4. اضبط البيئة

اختيار البيئة جزء حاسم من الإعداد:

نوع المهمة البيئة المقترحة
اختبار انحدار ليلي production
فحص smoke قبل الإصدار staging
تحقق من تكامل داخلي بيئة اختبار مخصصة

يمكن لكل سيناريو اختيار بيئته، لكن من الأفضل عادةً إبقاء المهمة مخصصة لبيئة واحدة لتسهيل تتبع النتائج.

5. اضبط جدول التشغيل

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

أمثلة موثقة:

  • كل يوم أحد الساعة 11 مساءً.
  • كل 6 ساعات.
  • كل 8 ساعات.

اقتراحات عملية:

  • شغّل اختبار الانحدار يوميًا في وقت متأخر من الليل لتقليل الضوضاء.
  • شغّل smoke test على staging كل 6 ساعات للحصول على ملاحظات أسرع.
  • لا تبدأ بجدول شديد التكرار قبل التحقق من حدود خطتك وسعة البيئة المستهدفة.

6. اختر الـ Runner

في حقل الـ Runner، اختر الـ Self-hosted Runner المسجل لديك.

قد يظهر اسم الحقل بصيغ مختلفة، مثل:

  • يعمل على
  • تشغيل على
  • Run on

كلها تشير إلى الجهاز الذي سينفذ الاختبارات.

اختر Runner مناسبًا لموقع API الحقيقي. إذا كانت الخدمة داخل VPC، فاختر Runner داخل الشبكة نفسها إذا كان ذلك يعكس حركة المرور الفعلية.

جميع الطلبات في المهمة ستصدر من شبكة هذا الـ Runner.

7. فعّل الإشعارات

فعّل الإشعارات كي لا تتحول المهام المجدولة إلى تقارير لا يقرأها أحد.

القنوات المدعومة تشمل:

  • Slack
  • Teams
  • Webhook
  • Jenkins
  • البريد الإلكتروني

يمكنك اختيار وقت إرسال التنبيه:

  • بعد كل تشغيل
  • عند الفشل فقط

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

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

8. احفظ المهمة وفعّلها

بعد مراجعة السيناريوهات والبيئة والـ Runner والتنبيهات:

  1. احفظ المهمة.
  2. فعّل مفتاح التشغيل.
  3. تحقق من أول تنفيذ في سجل التشغيل.

يمكنك إيقاف المهمة لاحقًا أثناء انقطاع مخطط له أو ترحيل يسبب نتائج غير مستقرة.

9. راجع سجل التشغيل

بعد كل تنفيذ، يعيد الـ Runner النتائج إلى الخادم.

افتح قسم:

المهام المجدولة → سجل التشغيل
Enter fullscreen mode Exit fullscreen mode

استخدم السجل للإجابة عن أسئلة مثل:

  • أي تشغيل فشل؟
  • متى بدأ الفشل؟
  • أي تأكيد فشل؟
  • هل المشكلة مرتبطة بسيناريو محدد أم بالـ Runner؟
  • هل وصل تنبيه Slack بسبب فشل فعلي أم بسبب مشكلة شبكة؟

إعدادات متقدمة

نطاق مشاركة المتغيرات

عند تمرير البيانات بين السيناريوهات، يوفر Apidog ثلاثة مستويات للمشاركة:

  1. المشاركة فقط في سيناريو الاختبار الحالي

    استخدمها عندما تكون القيمة محلية، مثل userId خاص بسيناريو واحد.

  2. المشاركة عبر جميع سيناريوهات الاختبار في المهمة المجدولة الحالية

    مناسبة عندما يحتاج سيناريو الدفع إلى رمز وصول أو قيمة أنشأها سيناريو تسجيل الدخول.

  3. المشاركة عبر جميع المهام المجدولة في مجلد المهام المجدولة الحالي

    استخدمها فقط عندما تحتاج مهام متعددة ومترابطة إلى الإعدادات نفسها.

اختر دائمًا أصغر نطاق يلبي الحاجة. لا تشارك رموز المصادقة أو البيانات الحساسة على نطاق أوسع من المطلوب.

الاحتفاظ بقيم المتغيرات بين التشغيلات

لن تستمر القيم بين تشغيل وآخر إلا عند تفعيل خيار:

الاحتفاظ بقيم المتغيرات
Enter fullscreen mode Exit fullscreen mode

من صفحة تصميم سيناريو الاختبار.

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

تنظيم المهام بالمجلدات

عند زيادة عدد المهام، استخدم مجلدات واضحة، مثل:

scheduled-tasks/
├── production/
│   ├── nightly-regression
│   └── hourly-health-check
├── staging/
│   └── smoke-test
└── pre-release/
    └── checkout-validation
Enter fullscreen mode Exit fullscreen mode

يسهّل هذا التنظيم الفصل بين مراقبة الإنتاج وفحوصات ما قبل الإصدار، كما يساعد عند استخدام نطاق مشاركة المتغيرات على مستوى المجلد.

راجع حدود الخطة

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

للتوسع في سيناريوهات أكثر تعقيدًا، راجع:

بديل واجهة المستخدم: Apidog CLI مع cron أو CI

واجهة المهام المجدولة ليست المسار الوحيد. يمكنك استخدام Apidog CLI لتشغيل سيناريو محفوظ بدون واجهة رسومية، ثم تترك الجدولة لـ cron أو مزود CI.

لا تحتوي CLI على أمر جدولة أصلي؛ الجدولة تتم خارج Apidog.

ثبّت CLI وسجّل الدخول باستخدام رمز وصول:

npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
Enter fullscreen mode Exit fullscreen mode

ثم شغّل سيناريو اختبار مقابل بيئة محددة:

apidog run \
  --access-token $APIDOG_ACCESS_TOKEN \
  -t <SCENARIO_ID> \
  -e <ENV_ID> \
  -r cli,junit
Enter fullscreen mode Exit fullscreen mode

المعاملات الأساسية:

المعامل الوصف
-t معرف سيناريو الاختبار
-e معرف البيئة
-r نوع التقرير، مثل cli أو html أو junit

راجع دليل تثبيت Apidog CLI لإعداد رمز الوصول.

تشغيل ليلي باستخدام cron

أضف السطر التالي إلى crontab لتشغيل الاختبار يوميًا الساعة 2 صباحًا:

0 2 * * * cd /srv/api-tests && apidog run --access-token $APIDOG_ACCESS_TOKEN -t 4471 -e 88 -r junit >> run.log 2>&1
Enter fullscreen mode Exit fullscreen mode

هذا المثال:

  1. ينتقل إلى مجلد الاختبارات.
  2. يشغّل السيناريو 4471.
  3. يستخدم البيئة 88.
  4. ينتج تقرير JUnit.
  5. يضيف السجل إلى run.log.

يمكنك أيضًا تشغيله عبر GitHub Actions مجدول. راجع:

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

هل يمكن تشغيل الاختبارات المجدولة على Apidog Cloud الآن؟

ليس بعد. يظهر Apidog Cloud كخيار “قريبًا”، لذا فإن Self-hosted Runner هو خيار التنفيذ المتاح حاليًا.

كم مرة يمكن تشغيل المهام المجدولة؟

يعتمد ذلك على خطتك. أمثلة التكرار تشمل كل 6 ساعات أو أسبوعيًا، لكن الحد الإجمالي للتشغيلات تحدده خطة الاشتراك.

كيف أستقبل تنبيهًا عند الفشل فقط؟

من إعدادات إشعارات المهمة:

  1. اختر عند الفشل فقط.
  2. أضف قناة مثل Slack أو Teams أو Webhook أو Jenkins أو البريد الإلكتروني.

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

لماذا تختلف نتائج التشغيل المجدول عن التشغيل المحلي؟

لأن الطلبات تنطلق من الـ Runner، لا من جهازك المحمول. تختلف الشبكة والمنطقة وVPN والجدار الناري، وقد يكون ذلك انعكاسًا أدق لتجربة المستخدم الفعلية.

لماذا تُعاد تعيين متغيراتي في كل تشغيل؟

فعّل خيار الاحتفاظ بقيم المتغيرات من صفحة تصميم سيناريو الاختبار. بدونه، يبدأ كل تشغيل مجدول بحالة جديدة.

خاتمة

تحوّل الاختبارات المجدولة عبارة “نعتقد أن API تعمل” إلى “نعرف أنها تعمل، وسنعرف فورًا إذا تعطلت”.

ابدأ بهذا التسلسل:

  1. أنشئ سيناريوهات اختبار واضحة.
  2. سجّل Self-hosted Runner.
  3. اختر البيئة وجدول التشغيل.
  4. اربط إشعارات الفشل بـ Slack أو البريد الإلكتروني.
  5. راقب سجل التشغيل.
  6. استخدم CLI وcron أو CI عند الحاجة إلى دمج الفحوصات في خط الأنابيب.

نزّل Apidog لإعداد أول مجموعة اختبار انحدار مجدولة. البدء مجاني ولا يتطلب بطاقة ائتمان.

Top comments (0)