DEV Community

Cover image for أفضل بدائل Postman CLI لتشغيل اختبارات API في CI
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

أفضل بدائل Postman CLI لتشغيل اختبارات API في CI

يُعد Postman CLI طريقة جيدة لتشغيل مجموعات Postman داخل مسار CI/CD، لكنه يربط تنفيذ الاختبارات بحساب Postman وسحابة Postman. هذا لا يناسب كل الفرق، خصوصًا عند وجود قيود امتثال، تشغيل دون اتصال، أو رغبة في إبقاء الاختبارات داخل المستودع. في هذا الدليل ستتعرف على خمسة بدائل عملية لتشغيل اختبارات API في CI، مع توضيح متى تختار كل أداة، ولماذا يُعد Apidog CLI خيارًا موصى به. وللمقارنة بين Postman CLI و Newman، راجع مقارنة Postman بين Postman CLI و Newman.

جرّب Apidog اليوم

لماذا تتجاوز الفرق Postman CLI

Postman CLI هي الأداة التي يوصي بها Postman لتشغيل المجموعات في CI/CD. عمليًا، تقوم الأداة بتشغيل المجموعات، إرسال النتائج، وعرض التقارير داخل تطبيق Postman.

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

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

لذلك تبحث فرق كثيرة عن runner يسمح لها بتشغيل اختبارات API داخل المستودع، دون اعتماد قوي على السحابة، وبطريقة تناسب CI/CD مباشرة.

مقارنة سريعة

الأداة تنسيق الاختبار حساب مطلوب للتشغيل الترخيص الأفضل لـ
Apidog CLI سيناريوهات / مجموعات اختبار Apidog، أو ملفات مُصدرة لا، مع رمز مميز لمزامنة المشروع تجاري، مع طبقة مجانية الفرق التي تريد التصميم، المحاكاة، الاختبار، والتوثيق في مكان واحد
Newman ملف JSON لمجموعة Postman لا مفتوح المصدر Apache-2.0 مستخدمو Postman الذين يريدون تشغيلًا دون اتصال
Hoppscotch CLI ملف JSON لمجموعة Hoppscotch لا، عند استخدام تصدير JSON مفتوح المصدر مستخدمو Hoppscotch أو المستضيفون ذاتيًا
inso مجموعات اختبار Insomnia عبر مزامنة Git لا مفتوح المصدر فرق Insomnia التي تعتمد Git
Hurl ملفات .hurl نصية لا مفتوح المصدر اختبارات HTTP بسيطة بنمط curl داخل المستودع

1. Apidog CLI

Apidog CLI هو runner بلا واجهة رسومية لتشغيل اختبارات Apidog من الطرفية أو داخل CI/CD. يمكنك تشغيل سيناريوهات الاختبار ومجموعات الاختبار باستخدام الأمر:

apidog run
Enter fullscreen mode Exit fullscreen mode

ثم تضع الأمر نفسه داخل GitHub Actions أو GitLab CI أو Jenkins.

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

كيف تستخدمه عمليًا في CI

الفكرة العامة:

apidog run
Enter fullscreen mode Exit fullscreen mode

ولتشغيل اختبارات مبنية على بيانات:

apidog run -d data.csv
Enter fullscreen mode Exit fullscreen mode

أو:

apidog run -d data.json
Enter fullscreen mode Exit fullscreen mode

ولإخراج تقارير مناسبة لـ CI:

apidog run -r cli,json,junit,html
Enter fullscreen mode Exit fullscreen mode

استخدم:

  • cli لعرض النتائج في سجل CI.
  • json لمعالجة النتائج آليًا.
  • junit لدمج النتائج مع لوحات CI.
  • html لتقرير قابل للقراءة من الفريق.

متى تختار Apidog CLI

اختره إذا كنت تريد:

  • تشغيل اختبارات API من CI/CD.
  • ربط الاختبارات بعقد API والتوثيق.
  • استخدام بيانات CSV أو JSON لتكرار نفس السيناريو على حالات متعددة.
  • تصدير تقارير يفهمها CI.
  • تشغيل محاكاة API عند الحاجة لاختبارات الواجهة الأمامية أو التكامل.

يحتوي Apidog على طبقة مجانية وتطبيق سطح مكتب من Apidog. وإذا أردت مقارنة مباشرة، راجع مقارنة Apidog CLI و Postman CLI.

2. Newman

Newman هو runner مفتوح المصدر لتشغيل مجموعات Postman من سطر الأوامر. إذا كان لديك ملف JSON لمجموعة Postman، يمكنك تشغيله دون الحاجة إلى تطبيق Postman أو Postman CLI.

مثال تشغيل أساسي:

newman run collection.json
Enter fullscreen mode Exit fullscreen mode

مع بيئة:

newman run collection.json -e environment.json
Enter fullscreen mode Exit fullscreen mode

ومع تقرير JUnit:

newman run collection.json -r cli,junit
Enter fullscreen mode Exit fullscreen mode

نقاط قوة Newman

  • مفتوح المصدر تحت ترخيص Apache-2.0.
  • يعمل دون اتصال.
  • يقرأ صادرات Postman مباشرة.
  • لديه مجتمع كبير وأمثلة CI كثيرة.

متى تختاره

اختر Newman إذا كنت تستخدم Postman بالفعل وتريد فقط تشغيل مجموعاتك في CI دون استخدام Postman CLI.

المفاضلة أنه يبقيك داخل نموذج “مجموعة Postman كمصدر للحقيقة”. إذا أردت الابتعاد عن هذا النموذج، فقد تحتاج إلى أداة ترتبط بعقد API والتوثيق بشكل أقوى. للمقارنة، اقرأ مقارنة Apidog CLI و Newman.

3. Hoppscotch CLI

Hoppscotch هو عميل API مفتوح المصدر وقابل للاستضافة الذاتية. يوفر Hoppscotch CLI، عبر الحزمة @hoppscotch/cli، طريقة لتشغيل اختبارات Hoppscotch داخل CI.

الأمر الأساسي هو:

hopp test
Enter fullscreen mode Exit fullscreen mode

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

أين يفيد Hoppscotch CLI

  • إذا كان فريقك يستخدم Hoppscotch بالفعل.
  • إذا كنت تحتاج أداة مفتوحة المصدر وقابلة للاستضافة الذاتية.
  • إذا كنت تريد تشغيل الاختبارات من تصدير JSON للمجموعة والبيئة.
  • إذا كنت تريد إخراج JUnit باستخدام:
hopp test --reporter-junit
Enter fullscreen mode Exit fullscreen mode

متى تختاره

اختر Hoppscotch CLI إذا كان سير عملك الحالي داخل Hoppscotch وتريد إضافة طبقة CI بدون تغيير كبير في طريقة عمل الفريق.

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

4. inso - Insomnia CLI

inso هي أداة سطر الأوامر الخاصة بـ Kong Insomnia. تتيح تشغيل مجموعات الاختبار التي تنشئها داخل Insomnia، وتبرز خصوصًا عند استخدام مزامنة Git.

عند إعداد Git Sync في Insomnia، تُخزن بيانات المشروع داخل دليل:

.insomnia
Enter fullscreen mode Exit fullscreen mode

داخل المستودع. هذا يعني أن المواصفات، الطلبات، ومجموعات الاختبار تصبح ملفات يمكن مراجعتها ودمجها عبر Git.

مثال تشغيل مجموعة اختبار:

inso run test "My API Test Suite"
Enter fullscreen mode Exit fullscreen mode

نقاط قوة inso

  • مناسب للفرق التي تستخدم Insomnia بالفعل.
  • يجعل اختبارات API جزءًا من المستودع.
  • يعمل جيدًا مع GitHub Actions و GitLab و Jenkins.
  • يسمح بتشغيل مجموعة اختبار محددة بالاسم.

متى تختاره

اختر inso إذا كان فريقك يصمم ويختبر داخل Insomnia ويريد إبقاء الاختبارات في Git دون إدخال سحابة بائع في مسار CI.

للمقارنة مع Apidog CLI، راجع مقارنة Apidog CLI و inso.

5. Hurl

Hurl مختلف عن بقية الأدوات. هو أداة صغيرة لتشغيل طلبات HTTP مكتوبة في ملفات نصية بامتداد .hurl. يعتمد على Rust و libcurl، ولا يحتاج إلى حساب أو واجهة رسومية.

مثال بسيط:

GET https://example.com/api/users
HTTP 200
[Asserts]
jsonpath "$.data" exists
Enter fullscreen mode Exit fullscreen mode

تشغيله:

hurl users.hurl
Enter fullscreen mode Exit fullscreen mode

لماذا يختاره المطورون

  • الملفات نصية وسهلة المراجعة في Git.
  • لا توجد واجهة أو حساب أو اعتماد على منصة.
  • مناسب لاختبارات smoke tests واختبارات endpoints السريعة.
  • يعيد رموز خروج قياسية، ما يجعله سهل الدمج مع CI.

مثال داخل CI:

hurl tests/*.hurl
Enter fullscreen mode Exit fullscreen mode

متى تختاره

اختر Hurl إذا كنت تريد أقل طبقة ممكنة لاختبار HTTP: ملفات نصية، أوامر واضحة، ونتائج مباشرة. لكنه ليس منصة API كاملة؛ لا يوفر تصميم API، خادم محاكاة، أو توليد توثيق.

للتنسيق الكامل، اقرأ وثائق Hurl الرسمية.

كيفية الاختيار

استخدم هذا القرار السريع:

  • تستخدم Postman وتريد تشغيلًا دون اتصال: اختر Newman.
  • تستخدم Hoppscotch أو تحتاج استضافة ذاتية: اختر Hoppscotch CLI.
  • تستخدم Insomnia وتريد Git-first workflow: اختر inso.
  • تريد ملفات نصية بسيطة بدون منصة: اختر Hurl.
  • تريد التصميم، المحاكاة، الاختبار، والتوثيق في مكان واحد: اختر Apidog CLI.

إذا كنت تتعامل مع API كمنتج وليس فقط كمجموعة طلبات، فوجود مصدر واحد للحقيقة يصبح مهمًا. يمكنك قراءة المزيد في API كمنتج، وكذلك دليل أفضل ممارسات CI/CD لاختبار API.

مثال عملي: اختيار runner حسب المستودع

إذا كان لديك هذا النوع من الملفات:

postman/
  collection.json
  environment.json
Enter fullscreen mode Exit fullscreen mode

ابدأ بـ Newman:

newman run postman/collection.json -e postman/environment.json
Enter fullscreen mode Exit fullscreen mode

إذا كان لديك اختبارات نصية:

tests/
  health.hurl
  users.hurl
Enter fullscreen mode Exit fullscreen mode

ابدأ بـ Hurl:

hurl tests/*.hurl
Enter fullscreen mode Exit fullscreen mode

إذا كانت اختباراتك داخل مشروع API شامل وتحتاج تقارير CI:

apidog run -r cli,junit,html
Enter fullscreen mode Exit fullscreen mode

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

هل يوجد بديل مجاني لـ Postman CLI؟

نعم. Newman و Hoppscotch CLI و inso و Hurl كلها أدوات مفتوحة المصدر ومجانية التشغيل. يحتوي Apidog CLI على طبقة مجانية ويستخدم نفس أمر apidog run الذي ستستخدمه داخل CI. لا يفرض أي منها رسومًا لكل تشغيل pipeline.

هل يمكنني تشغيل مجموعات Postman الحالية بدون Postman CLI؟

نعم. Newman يقرأ ملف JSON لمجموعة Postman مباشرة. ويمكن لـ Apidog استيراد مجموعة Postman ثم تشغيلها بلا واجهة رسومية. راجع كيفية تشغيل مجموعات Postman في CI بدون Newman.

ما الفرق بين Postman CLI و Newman؟

كلاهما يشغل مجموعات Postman من سطر الأوامر. الفرق أن Postman CLI يسجل الدخول باستخدام مفتاح Postman API ويرسل نتائج التشغيل إلى تطبيق Postman، بينما Newman أداة مستقلة مفتوحة المصدر ولا ترسل النتائج إلى السحابة. ذكرت Postman أنه لا توجد خطط لإيقاف دعم Newman.

أي بديل هو الأفضل لـ CI/CD؟

يعتمد على سير عملك:

  • لمنصة واحدة تجمع التصميم، المحاكاة، الاختبار، والتوثيق: Apidog CLI.
  • لاختبارات نصية خفيفة: Hurl.
  • لمجموعات Postman الحالية: Newman.
  • لمستخدمي Hoppscotch: Hoppscotch CLI.
  • لمستخدمي Insomnia مع Git Sync: inso.

الخلاصة

Postman CLI يعمل، لكن اعتماده على حساب Postman وسحابة Postman قد لا يناسب كل الفرق. إذا كنت تريد runner بسيطًا لمجموعات Postman، استخدم Newman. إذا كنت تريد اختبارات نصية خفيفة، استخدم Hurl. أما إذا كنت تريد ربط التصميم، المحاكاة، الاختبار، والتوثيق بمصدر واحد للحقيقة، فابدأ بـ Apidog CLI.

يمكنك تنزيل Apidog وتشغيل اختبارك الأول من سطر الأوامر، أو قراءة المزيد عن المنصة على Apidog.

Top comments (0)