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