واجهة سطر الأوامر (CLI) من Hoppscotch هي طريقة مجانية ومفتوحة المصدر لتشغيل مجموعات واجهات برمجة التطبيقات (API collections) من الطرفية. إذا كنت تستخدم Hoppscotch بالفعل على الويب أو سطح المكتب، فإن `hopp test` يسمح لك بدفع نفس هذه الطلبات إلى خط أنابيب CI دون دفع أي شيء. هذه قوة حقيقية، وهذا المقال لن يتظاهر بخلاف ذلك.
لكن واجهة سطر الأوامر من Hoppscotch ضيقة عمدًا. فهي تشغل المجموعات وتقدم النتائج. لا تقوم بتصميم واجهات برمجة التطبيقات، أو محاكاتها، أو توثيقها، أو إدارتها كتعليمات برمجية. لذلك يصل العديد من الفرق إلى نقطة يريدون فيها أداة واحدة تقوم بأكثر من مجرد تنفيذ ملف JSON، أو يواجهون نقطة احتكاك مثل متطلب Node v22 ويبدأون في البحث عن بدائل.
ما تفعله واجهة سطر الأوامر من Hoppscotch بالفعل
يتم شحن Hoppscotch CLI كحزمة npm باسم @hoppscotch/cli. يمكنك تثبيته عالميًا:
npm i -g @hoppscotch/cli
شيء واحد يجب معرفته مقدمًا: يحتاج إلى Node.js v22 أو أحدث. إذا كنت عالقًا في Node 20، فإنك تبقى على CLI v0.26.0، مما قد يعقد صورة CI المشتركة حيث تثبت مهام أخرى إصدارًا أقدم من Node.
الأمر الأساسي هو hopp test. توجهه إلى ملف مجموعة (أو معرف مجموعة سحابية) ويقوم بتشغيل كل طلب بالترتيب:
hopp test ./collection.json -e ./environment.json -d 500
بالنسبة للمثيلات السحابية أو المستضافة ذاتيًا، تمرر معرفًا بالإضافة إلى بيانات الاعتماد:
hopp test <collection-id> -e <environment-id> --token <access_token> --server <server-url>
يقوم بتنفيذ البرامج النصية قبل الطلب (pre-request scripts) والبرامج النصية للاختبار (suites pw.test()، حالات pw.expect())، ويتحقق من الاستجابات، ويخرج بقيمة غير صفرية إذا فشل أي تأكيد. كما يدعم --reporter-junit <path> لتنسيق JUnit XML، بالإضافة إلى --iteration-count و --iteration-data <csv> للتشغيل المعتمد على البيانات. هذا في الواقع مشغل مجاني ذو كفاءة عالية.
لماذا تبحث الفرق عن بديل لـ hopp test
عادةً ما تكون الأسباب التي تجعل الناس يبحثون عن بديل لـ Hoppscotch CLI عملية وليست أيديولوجية:
- إنه مشغل مجموعات، لا أكثر. التصميم والمحاكاة والتوثيق تعيش في مكان آخر. ينتهي بك الأمر بتجميع أدوات متعددة معًا.
- يجب عليك تصدير JSON أولاً. تأتي المواصفات والبيئات كملفات مجموعة/بيئة مصدرة (أو معرفات سحابية). لا يوجد تحليل للمواصفات أو طبقة تصميم في CLI نفسها.
- متطلب Node v22. أحدث مما هو افتراضي في العديد من صور البناء، مما يعني تعقيدًا إضافيًا في إدارة الإصدارات.
- لا يوجد سير عمل للمواصفات كتعليمات برمجية. لا يمكنك إدارة نقاط النهاية أو المخططات أو الفروع من CLI. CLI هو تابع للمكان الذي حددت فيه واجهة برمجة التطبيقات.
لا شيء من هذا يجعل Hoppscotch سيئًا. بل يجعله أداة مركزة. إذا كنت تريد تغطية أوسع، فإليك البدائل التي تستحق وقتك.
1. Apidog CLI (أفضل بديل شامل)
Apidog هي منصة API شاملة تغطي التصميم، والتصحيح، والمحاكاة، والتوثيق، والاختبار. تجلب Apidog CLI جانب الاختبار وإدارة الموارد إلى الطرفية و CI/CD، وهذا ما يجعلها بديلاً قويًا لمشغل المجموعات المستقل.
باستخدام apidog run يمكنك تنفيذ سيناريوهات الاختبار ومجموعات من سطر الأوامر. وهو يدعم الاختبار المعتمد على البيانات من خلال -d (مجموعات بيانات CSV أو JSON)، والبيئات عبر -e، والمُبلغين (reporters) بتنسيقات CLI و HTML و JSON، وتقارير الاختبار السحابية مع --upload-report. بالإضافة إلى تشغيل الاختبارات، يمكن لـ CLI استيراد OpenAPI وإدارة موارد API، ونقاط النهاية، والمخططات، والبيئات، والفروع، وطلبات الدمج، كتعليمات برمجية. لذا فإن تعريف API الخاص بك واختباراتك تعيش في نفس النظام بدلاً من تصديرها ذهابًا وإيابًا.
لكي نكون دقيقين بشأن النطاق: يقوم Apidog بالتحقق من صحة المواصفات عند الاستيراد، ولكنه لا يشحن محلل OpenAPI مستقل (linter) أو أمر split/join/bundle. إذا كان هدفك هو تحليل المواصفات النقي في CI، فإن inso (أدناه) هو الأنسب. عرض Apidog هو التكامل، تقوم بالتصميم، والمحاكاة، والتوثيق، والاختبار في مكان واحد، ثم تقوم بتشغيل طبقات الاختبار والموارد من CLI.
المزايا:
- منصة واحدة للتصميم والمحاكاة والتوثيق والاختبار بدلاً من سلسلة أدوات
- تشغيل معتمد على البيانات باستخدام مجموعات بيانات CSV/JSON
- مُبلغون بتنسيقات CLI و HTML و JSON، بالإضافة إلى تقارير سحابية قابلة للتحميل
- الموارد كتعليمات برمجية: إدارة نقاط النهاية، والمخططات، والفروع، وطلبات الدمج من CLI
- يستورد OpenAPI مباشرة
العيوب:
- لا يوجد أمر مستقل لمحلل المواصفات (استخدم inso أو Redocly للتحقق من الأنماط على غرار Spectral)
- المنصة الكاملة قد تكون أكثر مما تحتاج إذا كنت تشغل مجموعة واحدة فقط
إذا كنت تقارن الاثنين مباشرة، راجع Apidog CLI مقابل Hoppscotch CLI ودليل التنفيذ العملي ترحيل Hoppscotch CLI إلى Apidog CLI. يغطي دليل Apidog CLI الشامل التثبيت والمصادقة ومجموعة الأوامر الكاملة. لتجربته، قم بتنزيل Apidog.
2. Newman (مشغل Postman)
Newman هو مشغل مجموعات سطر الأوامر الرسمي لـ Postman. إذا كان فريقك يستخدم Postman بالفعل، فإن Newman هو المسار الأقل مقاومة: قم بتصدير المجموعة والبيئة، ثم قم بتشغيلها في CI.
newman run collection.json -e env.json -r cli,json
وهو يدعم العديد من المُبلغين (CLI، JSON، JUnit، HTML عبر مكون إضافي)، وملفات البيانات للتكرار، وعقد رمز خروج مستقر لخطوط الأنابيب.
المزايا:
- ناضج، موثق على نطاق واسع، نظام بيئي ضخم
- توافق من الدرجة الأولى مع Postman
- مُبلغون مرنون وتكرارات تعتمد على البيانات
العيوب:
- مثل Hoppscotch CLI، هو مجرد مشغل، لا يوجد طبقة تصميم أو توثيق
- مرتبط بتنسيق مجموعة Postman ونموذج البرمجة النصية الخاص به
- لا يزال يتعين عليك تصدير JSON لاستخدامه
للمقارنة المباشرة مع نهج Apidog، راجع Apidog CLI مقابل Newman.
3. inso (واجهة سطر الأوامر لـ Insomnia من Kong)
inso هو الرفيق الذي يعمل بسطر الأوامر لعميل Insomnia مفتوح المصدر من Kong. إنه يفعل شيئًا لا تفعله Hoppscotch CLI: فهو يحلل مواصفات OpenAPI. يعمل التحليل (linting) على Spectral، محلل OpenAPI من Stoplight، لذلك إذا كانت بوابات جودة المواصفات في CI مهمة بالنسبة لك، فإن inso هو منافس حقيقي.
inso run test "My Test Suite" --env "Staging"
inso lint spec "My API Design"
inso export spec "My API Design" --output output.yaml
يقرأ inso من دليل .insomnia (الذي أنشأه Git Sync من Insomnia) أو دليل بيانات التطبيق، ويشير إلى الأجنحة والمواصفات بالاسم. يمكنك تثبيته باستخدام brew install inso أو docker pull kong/inso:latest.
المزايا:
- تحليل حقيقي لـ OpenAPI عبر Spectral
- تشغيل الاختبارات والمجموعات، تصدير المواصفات، كل ذلك من الطرفية
- مسارات التثبيت عبر Brew و Docker
العيوب:
- يشير إلى الموارد بالاسم، مما قد يكون هشًا في البرامج النصية
- قدمت Insomnia 8 حسابًا سحابيًا/تسجيل دخول مطلوبًا في عام 2023 أثار ردود فعل سلبية، وكانت هناك حوادث ترحيل وفقدان بيانات حول هذا التغيير. من الجدير بالمعرفة إذا كنت تتبنى النظام البيئي حديثًا.
إذا كنت تقوم بتقييم Insomnia على نطاق أوسع، فإن Apidog مقابل Insomnia و أفضل بدائل تطبيق Insomnia قراءات جيدة تالية. توجد أيضًا مقارنة مركزة Apidog CLI مقابل inso (Insomnia CLI).
4. Step CI (اختبار API مفتوح المصدر في YAML)
Step CI هي أداة مفتوحة المصدر لجودة API تحدد الاختبارات في YAML تصريحي بدلاً من JavaScript المكتوب ببرمجة نصية. تصف الطلب والاستجابة المتوقعة، وتقوم بالتحقق منها. وهي تدعم REST و GraphQL و gRPC، وهي تغطية بروتوكولية أوسع من معظم مشغلات المجموعات.
npx stepci run workflow.yml
المزايا:
- YAML تصريحي، سهل القراءة في التحكم في الإصدار
- متعدد البروتوكولات (REST، GraphQL، gRPC)
- لا يعتمد على واجهة رسومية، التكوين يعيش بالكامل في مستودعك
العيوب:
- مجتمع ونظام بيئي أصغر
- لا توجد طبقة تصميم أو محاكاة أو توثيق
- تكتب الاختبارات يدويًا في YAML بدلاً من تسجيلها
Step CI مناسب إذا كنت تريد اختبارات أصلية لـ Git وقابلة للقراءة البشرية ولا تحتاج إلى واجهة مستخدم على الإطلاق.
5. Hurl (اختبار HTTP بالنص العادي)
يشغل Hurl طلبات HTTP المكتوبة بتنسيق نص عادي بسيط ويؤكد على الاستجابات. وهو مبني على libcurl، ويعمل بسرعة، وينتج مخرجات نظيفة. لا توجد برامج نصية ولا مجموعات JSON، فقط ملفات .hurl التي يمكنك مقارنتها في طلب سحب.
GET https://api.example.com/health
HTTP 200
[Asserts]
jsonpath "$.status" == "up"
شغّله باستخدام:
hurl --test health.hurl
المزايا:
- خفيف للغاية، ثنائي واحد، سريع
- ملفات نصية عادية تقرأ وكأنها توثيق
- رائع لاختبارات الدخان (smoke tests) وفحوصات السلامة (health checks) في CI
العيوب:
- مستوى أدنى من إطار عمل اختبار كامل
- لا توجد ميزات تصميم أو محاكاة أو توثيق
- أقل ملاءمة للسيناريوهات المعقدة والمتسلسلة والمعتمدة على البيانات
يتألق Hurl في فحوصات العقد والدخان السريعة والقابلة للقراءة. إنه لا يحاول أن يكون منصة.
جدول المقارنة
| الأداة | الترخيص | التركيز الأساسي | يعتمد على البيانات | تحليل المواصفات | التصميم/المحاكاة/التوثيق | تنسيقات التقارير |
|---|---|---|---|---|---|---|
| Apidog CLI | تجاري (طبقة مجانية) | منصة كاملة + اختبار CLI | نعم (CSV/JSON) | لا (يتحقق عند الاستيراد) | نعم | CLI، HTML، JSON، سحابي |
| Hoppscotch CLI | مفتوح المصدر | مشغل المجموعات | نعم (تكرارات CSV) | لا | لا | CLI، JUnit |
| Newman | مفتوح المصدر | مشغل Postman | نعم (ملفات بيانات) | لا | لا | CLI، JSON، JUnit، HTML |
| inso | مفتوح المصدر | مشغل Insomnia + محلل | محدود | نعم (Spectral) | جزئي (وثائق التصميم) | CLI، JUnit |
| Step CI | مفتوح المصدر | اختبارات API في YAML | نعم | لا | لا | CLI، JUnit |
| Hurl | مفتوح المصدر | اختبارات HTTP بالنص العادي | عبر القوالب | لا | لا | CLI، JUnit، HTML |
كيف تختار
- تريد أداة واحدة للتصميم وصولاً إلى الاختبار: Apidog CLI. فهو يزيل عملية تصدير JSON ثم التشغيل ويحافظ على موارد API واختباراتك في نفس النظام.
- فريقك يستخدم Postman بالفعل: Newman. أقل تكلفة للتحويل.
- تحتاج إلى تحليل OpenAPI في CI: inso، بسبب Spectral.
- تريد اختبارات تصريحية أصلية لـ Git: Step CI (YAML) أو Hurl (نص عادي).
- أنت سعيد بمشغل مفتوح المصدر مجاني وتريد فقط التخلص من Node 22: أي من الخيارات المذكورة أعلاه، حيث أن Newman و Step CI و Hurl لا تشارك هذا المتطلب.
إذا كان سببك الرئيسي للمغادرة هو سقف مشغل المجموعات بدلاً من أي إزعاج فردي، فإن المسار المتكامل هو الذي يجب النظر إليه أولاً. راجع Apidog CLI مقابل Postman CLI و خط أنابيب Apidog CLI CI/CD لمعرفة كيفية ملاءمة جانب الاختبار في خط أنابيب حقيقي، و تقارير اختبار Apidog CLI لخيارات المُبلغ.
الأسئلة الشائعة
هل Hoppscotch CLI مجاني؟ نعم. @hoppscotch/cli مفتوح المصدر ومجاني للاستخدام. يقوم بتشغيل المجموعات، وتنفيذ البرامج النصية للاختبار، وإصدار تقارير JUnit. البدائل هنا لا تتعلق بكون Hoppscotch مكلفًا، بل تتعلق بالرغبة في أكثر من مجرد مشغل.
ما هو أبسط بديل لـ Hoppscotch CLI إذا كنت لا أريد Node v22؟ Hurl هو ثنائي واحد لا يعتمد على Node على الإطلاق. يتم تثبيت inso عبر Homebrew أو Docker. يتم تشغيل Step CI عبر npx ولكنه غير مرتبط بـ Node 22 بنفس طريقة Hoppscotch CLI الحالي.
هل يمكنني نقل مجموعات Hoppscotch الموجودة لدي إلى أداة أخرى؟ نعم. تقبل معظم الأدوات المجموعات المصدرة أو OpenAPI. بالنسبة للمسار المتكامل، يشرح دليل ترحيل Hoppscotch CLI إلى Apidog CLI كيفية استيراد وإعادة تشغيل أجنحتك.
هل يقوم Apidog CLI بتحليل مواصفات OpenAPI كما يفعل inso؟ لا. يقوم Apidog بالتحقق من صحة المواصفات عند الاستيراد ولكنه لا يحتوي على أمر محلل مستقل. إذا كان تطبيق دليل الأنماط على غرار Spectral في CI مطلبًا صارمًا، فقم بإقران Apidog مع inso أو استخدم Apidog CLI مقابل Redocly CLI لمقارنة الخيار الذي يركز على التحليل.
ما هو أفضل بديل لخط أنابيب CI؟ جميعها تعيد رموز خروج غير صفرية عند الفشل، لذا تعمل جميعها في CI. العامل الحاسم هو ما تحتاجه أيضًا: التشغيلات البحتة تفضل Newman أو Hurl؛ المصدر الواحد للحقيقة للتصميم بالإضافة إلى الاختبارات يفضل Apidog CLI؛ بوابات المواصفات تفضل inso.
يقوم Hoppscotch CLI بعمله الوحيد بشكل جيد. إذا كان هذا هو كل ما تحتاجه، فاستمر في استخدامه. إذا كنت تفضل دمج التصميم، والمحاكاة، والتوثيق، والاختبار في سير عمل واحد بدلاً من ربط المشغلات معًا، فإن المنصة المتكاملة هي الخطوة الصحيحة. ابدأ بدليل Apidog CLI الشامل، ثم قم بتنزيل Apidog وقم بتشغيل السيناريو الأول الخاص بك.
