إذا كنت تدير Insomnia في CI، فأنت تعرف inso. إنه الرفيق المكتبي لعميل Insomnia API مفتوح المصدر من Kong، ويقوم بثلاثة أشياء مفيدة من الطرفية: تشغيل مجموعات الاختبار (test suites)، وتشغيل مجموعات الطلبات (request collections)، وتدقيق مواصفات OpenAPI باستخدام Spectral. بالنسبة للكثير من الفرق، هذا يكفي. بالنسبة للآخرين، تظهر الاحتكاكات بسرعة.
يشرح هذا الدليل ما هو inso بالفعل، ولماذا تبدأ الفرق في البحث عن بديل لـ inso، وما هي الأدوات التي تحل محله اعتمادًا على المهمة التي تحتاج إلى إنجازها. بعضها منصات API كاملة. بعضها عبارة عن أدوات تشغيل صغيرة أحادية الغرض. لا يوجد أي منها بديل مثالي، لذا فإن الإجابة الصادقة على سؤال "ما هو أفضل بديل لـ insomnia cli" هي "يعتمد ذلك على ما تشغل inso لأجله اليوم".
ماذا يفعل inso، وأين تبدأ الاحتكاكات
يقرأ inso من دليل .insomnia في دليل العمل الخاص بك (الذي ينشئه Git Sync الخاص بـ Insomnia) أو من دليل بيانات تطبيق Insomnia إذا كان تطبيق سطح المكتب مثبتًا. تشير إلى المواصفات والمجموعات بالاسم، وليس بمسار الملف:
inso run test "My API Test Suite" --env "Staging"
inso run collection "Smoke Tests" --env "Staging"
inso lint spec "Petstore Design Doc"
inso export spec "Petstore Design Doc" --output openapi.yaml
التثبيت مباشر. Homebrew (brew install inso)، أو صورة Docker (docker pull kong/inso:latest)، أو تنزيل مباشر لملفات مضغوطة لأنظمة Windows وLinux وmacOS. Spectral، أداة تدقيق OpenAPI من Stoplight، تشغل inso lint spec. هذا التدقيق هو قوة حقيقية، ويستحق أن تتذكره قبل أن تتحول.
فلماذا تبحث عن بديل لـ inso؟ بعض الأسباب المتكررة:
- الارتباط بقاعدة بيانات تطبيق Insomnia. يعيش مصدر حقيقة اختبارك داخل دليل
.insomniaأو مجلد بيانات التطبيق. إذا لم تستخدم تطبيق سطح المكتب، فإن النموذج يبدو معكوسًا. - المراجع المستندة إلى الاسم. يتم الإشارة إلى المجموعات والمواصفات باسم العرض. أعد تسمية مجموعة في الواجهة الرسومية وسيتعطل أمر CI الخاص بك بصمت. الأسماء ليست معرفات مستقرة.
- حلقة الحساب السحابي. قدم Insomnia 8 (2023) حساب تسجيل دخول سحابي مطلوب، مما أثار رد فعل عنيفًا. كانت هناك أيضًا حوادث فقدان بيانات وترحيل خلال تلك الفترة. بدأت الفرق التي تضررت في البحث عن أدوات لا تربط بيانات طلباتها بحساب بائع.
- فصل التدقيق مقابل الاختبار. يجمع
insoبين تدقيق المواصفات واختبار الطلبات. إذا كنت تحتاج فقط إلى أحد هذين الأمرين، فقد ترغب في أداة تفعل ذلك بدون الآخر.
إذا كان تدقيق OpenAPI هو السبب الرئيسي لتشغيل inso، فقد يكلفك تغيير الأدوات أكثر مما يوفر. تركز معظم أدوات التشغيل أدناه على تنفيذ الطلبات والتأكيدات، وليس على فحوصات نمط دليل Spectral. تذكر هذا التمييز أثناء القراءة.
البدائل في لمحة
| الأداة | النوع | صيغة المصدر | مدعوم بالبيانات | المُبلغون | مفتوح المصدر | الأفضل لـ |
|---|---|---|---|---|---|---|
| Apidog CLI | مشغل منصة كاملة | مشروع Apidog / استيراد OpenAPI | نعم (-d CSV/JSON) |
CLI, HTML, JSON | لا (طبقة مجانية) | منصة واحدة: تصميم، محاكاة، وثائق، اختبار |
| Newman | مشغل مجموعات Postman | ملف JSON لمجموعة Postman | نعم (-d CSV/JSON) |
CLI, HTML, JSON | نعم | مجموعات Postman الموجودة |
| Hoppscotch CLI | مشغل مجموعات مفتوح المصدر (OSS) | ملف JSON لمجموعة Hoppscotch / معرف سحابي | نعم (بيانات التكرار CSV) | CLI, JUnit XML | نعم | خطوط أنابيب OSS مجانية وقابلة للاستضافة الذاتية |
| Step CI | مختبر API وصفي | ملفات سير عمل YAML / JSON | محدود | CLI, JUnit | نعم | اختبارات تعتمد على المواصفات، تكوين كرمز |
| Hurl | مشغل HTTP نص عادي | ملفات نصية .hurl |
عبر المتغيرات | CLI, JUnit, HTML | نعم | تأكيدات HTTP خفيفة الوزن |
1. Apidog CLI (الخيار الشامل)
Apidog هي منصة API شاملة تغطي التصميم، التصحيح، الاختبار، المحاكاة، والتوثيق. يجلب Apidog CLI جانب الاختبار إلى الطرفية الخاصة بك و CI/CD، وهذا هو المكان الذي يتنافس فيه مباشرة مع inso.
ينفذ apidog run سيناريوهات الاختبار والمجموعات من سطر الأوامر. يدعم الاختبار المعتمد على البيانات باستخدام -d (مجموعات بيانات CSV أو JSON)، والبيئات باستخدام -e، والمُبلغين بتنسيقات CLI و HTML و JSON. يمكنه أيضًا تحميل تقارير الاختبار السحابية باستخدام --upload-report، بحيث لا تختفي النتائج في سجلات CI.
apidog run --access-token <token> -t <scenario-id> -e <env-id>
apidog run -t <scenario-id> -d ./users.csv -r html,cli
apidog run -t <scenario-id> --upload-report
إلى جانب تشغيل الاختبارات، يدير Apidog CLI موارد API كرمز: استيراد OpenAPI، والعمل مع نقاط النهاية، والمخططات، والبيئات، والفروع، وطلبات الدمج من الطرفية. نموذج الفروع والموارد كرمز هذا أقرب إلى سير عمل أصلي لـ Git من نمط دليل .insomnia، وهو السبب الذي يجعل الفرق تختار Apidog عندما ترغب في أداة واحدة بدلاً من مجموعة متصلة من الأدوات.
ملاحظة صريحة: لا يحتوي Apidog CLI على مدقق منفصل لـ OpenAPI، أو دليل أنماط، أو أمر تقسيم، أو دمج، أو تجميع. يقوم بالتحقق من صحة المواصفات عند الاستيراد، لكنه لا يدققها بالطريقة التي يفعلها inso باستخدام Spectral. إذا كان التدقيق في الطرفية هو حاجتك الأساسية، فهذه فجوة حقيقية، ويحتفظ inso (أو Redocly CLI) بالأفضلية هناك. حيث يفوز Apidog هو التكامل: التصميم، المحاكاة، الوثائق، والاختبار يعيشون في مكان واحد، مع تشغيلات مدعومة بالبيانات ومُبلغين متعددي التنسيقات مدمجين.
الإيجابيات
- منصة واحدة للتصميم، المحاكاة، الوثائق، والاختبار، ليست أدوات منفصلة ملصقة ببعضها
- تشغيلات مدعومة بالبيانات (
-d)، ثلاثة تنسيقات للمُبلغين، بيئات، تقارير سحابية - إدارة الموارد والفروع كرمز من CLI
السلبيات
- لا يوجد مدقق مواصفات مستقل (يتحقق من الصحة عند الاستيراد، لا يدقق مثل Spectral)
- طبقة مجانية بدلاً من كونها مفتوحة المصدر بالكامل
إذا كنت تقارن أدوات التشغيل الطرفية وجهًا لوجه، فإن الدليل الكامل لـ Apidog CLI يشرح الإعداد، وهناك تفصيلات مباشرة مثل Apidog CLI مقابل Newman و Apidog CLI مقابل Postman CLI. لربطها بالأتمتة، راجع دليل GitHub Actions.
2. Newman (مشغل Postman CLI)
Newman هو مشغل مجموعات سطر الأوامر مفتوح المصدر الخاص بـ Postman. إذا كان فريقك يستخدم Postman بالفعل، فهو البديل الواضح لـ inso cli، لأنه يشغل نفس المجموعات التي قمت بإنشائها بالفعل.
newman run collection.json -e staging.json -d data.csv -r cli,html,json
يدعم Newman التكرارات المدعومة بالبيانات باستخدام -d، وملفات البيئة باستخدام -e، والمُبلغين بتنسيقات CLI و HTML و JSON. إنه ناضج، موثق جيدًا، ومنتشر في أمثلة CI.
الإيجابيات
- يشغل مجموعات Postman الموجودة بدون إعادة عمل
- مفتوح المصدر، مجتمع ضخم، الكثير من وصفات CI
- نظام بيئي قوي للمُبلغين
السلبيات
- مرتبط بتنسيق مجموعات Postman ونموذج المزامنة الخاص به
- لا يوجد تدقيق OpenAPI على الإطلاق
- أنت تدير المجموعات في تطبيق Postman، وليس كملفات مواصفات عادية
للحصول على مقارنة جنبًا إلى جنب حول أين ينتهي Newman وأين يبدأ مشغل المنصة، تغطي مقارنة Apidog CLI مقابل Newman المُبلغين، التشغيلات المدعومة بالبيانات، والتقارير السحابية.
3. Hoppscotch CLI (مشغل مفتوح المصدر)
Hoppscotch هو نظام بيئي مفتوح المصدر لـ API (ويب، سطح مكتب، CLI، وقابل للاستضافة الذاتية) يُقدم كبديل لـ Postman و Insomnia. يشغل CLI الخاص به، @hoppscotch/cli، المجموعات في CI.
يتطلب التثبيت Node.js v22 أو أحدث (مستخدمو Node 20 يبقون على CLI v0.26.0):
npm i -g @hoppscotch/cli
hopp test ./collection.json -e ./env.json -d 100
hopp test <collection-id> --token <pat> --server https://hoppscotch.example.com
hopp test ./collection.json --reporter-junit ./report.xml
يقوم hopp test بتشغيل كل طلب في مجموعة بشكل متكرر، وينفذ نصوص ما قبل الطلب والاختبار (مجموعات pw.test()، حالات pw.expect())، ويتحقق من صحة الاستجابات. يخرج بقيمة غير صفرية إذا فشل أي تأكيد. تغطي العلامات البيئات (-e)، التأخير (-d)، الرموز المميزة للوصول الشخصي (--token)، الخوادم المستضافة ذاتيًا (--server)، إخراج JUnit XML (--reporter-junit)، والتكرارات المدعومة بالبيانات (--iteration-count، --iteration-data).
الإيجابيات
- مفتوح المصدر بالكامل وقابل للاستضافة الذاتية، لا يتطلب حساب بائع
- مشغل OSS مجاني حقيقي مع تقارير JUnit وتكرارات مدعومة بالبيانات
- مراجع المجموعات السحابية أو المستضافة ذاتيًا
السلبيات
- قد يؤثر متطلب Node v22+ على صور CI القديمة
- نظام بيئي أصغر من Newman
- لا يوجد تدقيق OpenAPI
إذا كنت تقارن المسار مفتوح المصدر، فإن بدائل Hoppscotch و Postman مقابل Hoppscotch يوفران سياقًا مفيدًا، وهناك تفصيل مباشر Apidog CLI مقابل Hoppscotch CLI.
4. Step CI (الخيار الوصفي)
يتخذ Step CI شكلًا مختلفًا. بدلاً من الإشارة إلى مجموعة تم إنشاؤها في واجهة رسومية (GUI)، تكتب اختبارات API كملفات سير عمل وصفية بتنسيق YAML أو JSON تعيش في مستودعك. الاختبارات هي تكوين، يتم مراجعتها في طلبات السحب مثل أي رمز آخر.
version: "1.1"
name: Status check
tests:
health:
steps:
- name: GET health
http:
url: https://api.example.com/health
method: GET
check:
status: 200
هذا جذاب إذا وجدت أن المراجع المستندة إلى الأسماء في inso غير مستقرة. هنا، تعريف الاختبار هو الملف، ومسار الملف هو المعرف. يعمل Step CI محليًا وفي CI ويُصدر إخراج JUnit.
الإيجابيات
- الاختبارات هي ملفات وصفية في مستودعك، قابلة للمراجعة في PRs
- لا توجد قاعدة بيانات تطبيق، ولا تبعية على واجهة رسومية
- مناسب للفرق التي تعتمد على المواصفات
السلبيات
- أقل تفاعلية من مشغل مدعوم بواجهة رسومية لتصحيح الأخطاء المخصصة
- مجتمع أصغر؛ تكتب المزيد يدويًا
- دعم البيانات الموجهة أكثر محدودية من Newman أو Apidog
Step CI هو بديل نظيف لـ insomnia cli خصيصًا للفرق التي ترغب في أن تعيش تعريفات الاختبار بجانب كود تطبيقها بدلاً من داخل قاعدة بيانات أداة.
5. Hurl (خيار النص العادي)
Hurl هو أبسط إدخال هنا. تكتب طلبات وتأكيدات HTTP في ملفات نصية عادية .hurl، ويقوم Hurl بتشغيلها. لا واجهة رسومية، لا قاعدة بيانات، لا حساب، مجرد نص.
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.name" exists
شغله بـ hurl --test users.hurl. يقوم بربط الطلبات، ويلتقط المتغيرات بينها، ويدعم تقارير JUnit و HTML. لاختبارات الدخان والتحقق من العقود، إنه سريع وبلا تكوين تقريبًا.
الإيجابيات
- تنسيق نص عادي سهل للغاية، تحكم نظيف في الإصدارات
- لا يوجد تطبيق، لا حساب، بصمة صغيرة في CI
- ربط الطلبات بمتغيرات ملتقطة
السلبيات
- ليس إطار اختبار كامل؛ تصبح السيناريوهات المعقدة مطولة
- لا توجد واجهة رسومية للمجموعات، لذلك فهو أقل سهولة للمستخدمين غير المتخصصين في CLI
- لا يوجد تدقيق OpenAPI
كيف تختار
اختر حسب المهمة، وليس حسب العلامة التجارية:
- تريد أداة واحدة للتصميم، المحاكاة، الوثائق، والاختبار. استخدم Apidog CLI. إنه أوسع بديل والوحيد هنا الذي يتعامل مع الموارد والفروع كرمز.
- لديك بالفعل مجموعات Postman. استخدم Newman. لا تعيد بناء ما لديك.
- تريد شيئًا مفتوح المصدر بالكامل وقابل للاستضافة الذاتية. استخدم Hoppscotch CLI، أو Hurl إذا كنت تريد شيئًا أخف.
- تريد اختبارات كملفات وصفية في مستودعك. استخدم Step CI.
- أنت تشغل
inso lint specبشكل أساسي. فكر مرتين قبل التبديل. تدقيق Spectral هو القوة الحقيقية لـinso، ومعظم أدوات التشغيل هنا لا تحل محله. قم بإقران أداة تشغيل بـ Spectral مباشرة، أو ابحث عن CLI مخصص للتدقيق.
إذا كنت تنتقل من نظام Insomnia البيئي الأوسع، وليس فقط inso، فهذه القراءات تستحق: Apidog مقابل Insomnia، أفضل بدائل لتطبيق Insomnia، ودليل الاسترداد لـ فقدان بيانات وترحيل Insomnia. وللانتقال من CLI إلى CLI بالتحديد، راجع الترحيل من inso إلى Apidog CLI.
