يعتمد اختيار أداة تشغيل اختبارات واجهة سطر الأوامر (CLI) لخط أنابيبك على سؤال بسيط: ما الذي يقوم بتشغيل واجهات برمجة التطبيقات (APIs) الخاصة بك بالفعل في مرحلة التطوير، وما الذي تحتاج إلى أتمتته في التكامل المستمر (CI)؟ إذا كان فريقك يستخدم Insomnia، فإن inso هو الرفيق الواضح. إذا كنت ترغب في منصة واحدة تقوم بالتصميم، والمحاكاة، والتوثيق، والاختبار، فإن Apidog CLI يغير المعادلة.
ما هي كل أداة
inso هو الرفيق عبر سطر الأوامر لـ Insomnia، عميل API مفتوح المصدر من Kong. يقدم ثلاثة أشياء إلى الطرفية والتكامل المستمر (CI): تشغيل مجموعات الطلبات، تشغيل مجموعات اختبار الوحدات، وتدقيق مواصفات OpenAPI. يقرأ من نفس البيانات التي يستخدمها تطبيق Insomnia لسطح المكتب، لذا إذا قمت بإنشاء طلبات في الواجهة الرسومية، يقوم inso بتشغيلها بدون واجهة.
Apidog CLI هو أداة تشغيل الطرفية لـ Apidog، وهي منصة API شاملة تغطي التصميم، التصحيح، المحاكاة، التوثيق، والاختبار في مساحة عمل واحدة. يقوم واجهة سطر الأوامر (CLI) بتنفيذ سيناريوهات الاختبار والمجموعات من مشروع، ويدعم عمليات التشغيل المستندة إلى البيانات، ويصدر تقارير بتنسيقات متعددة. يمكنه أيضًا استيراد OpenAPI وإدارة موارد API مثل نقاط النهاية (endpoints) والمخططات (schemas) والفروع (branches) كتعليمات برمجية.
يظهر الاختلاف الجوهري قبل تشغيل اختبار واحد. inso هو أداة تشغيل مركزة بالإضافة إلى مدقق (linter) لنظام Insomnia البيئي. Apidog CLI هو سطح الاختبار لمنصة أوسع.
Apidog CLI مقابل inso: جدول المقارنة
| القدرة | inso (واجهة سطر الأوامر لـ Insomnia) | Apidog CLI |
|---|---|---|
| التثبيت | brew install inso، Docker (kong/inso)، أو تنزيل مباشر |
تنزيل المثبت؛ يشغل السيناريوهات من مشروع Apidog |
| ما يشغله | مجموعات الاختبار ومجموعات الطلبات، المشار إليها بالاسم | سيناريوهات الاختبار والمجموعات من مشروع |
| مصدر البيانات | مجلد .insomnia (مزامنة Git) أو قاعدة بيانات تطبيق Insomnia؛ يمكن تجاوزها باستخدام --workingDir/--src |
سيناريوهات اختبار المشروع متزامنة مع مساحة عمل Apidog |
| الاختبار القائم على البيانات | ليس علمًا مدمجًا (built-in flag) | نعم، عبر -d مع مجموعات بيانات CSV/JSON |
| التقارير | إخراج الاختبار إلى الطرفية/CI | CLI، HTML، وJSON؛ تقارير سحابية عبر --upload-report |
| تدقيق المواصفات | نعم، inso lint spec عبر Spectral |
لا يوجد مدقق مستقل؛ يتحقق من صحة المواصفات عند الاستيراد |
| المورد/الفرع كتعليمات برمجية | لا | نعم، إدارة نقاط النهاية، المخططات، الفروع من واجهة سطر الأوامر (CLI) |
| تكامل المنصة | يتكامل مع عميل Insomnia | تصميم، محاكاة، توثيق، واختبار في منصة واحدة |
| مفتوح المصدر | نعم (Insomnia مفتوح المصدر) | منصة تجارية |
| التسعير | مجاني | طبقة مجانية متاحة |
الجدول هو النسخة المختصرة. تشرح الأقسام أدناه الاختلافات التي تهم حقًا عندما تقوم بدمج أي منهما في التكامل المستمر (CI).
التثبيت: brew وDocker مقابل مثبت Apidog
يتم توفير inso عبر عدة قنوات موثقة. القنوات الشائعة هي:
# Homebrew
brew install inso
# Docker
docker pull kong/inso:latest
تتوفر أيضًا تنزيلات مباشرة لأنظمة Windows وLinux وmacOS. تاريخياً، كان inso متاحاً على npm باسم insomnia-inso، ولكن Homebrew وDocker والتنزيلات المباشرة هي المسارات التي توثقها Kong اليوم. تُعد صورة Docker مفيدة لمُشغّلات CI حيث لا ترغب في إدارة سلسلة أدوات Node.
يُثبت Apidog CLI من صفحة تنزيل Apidog ويُشغّل السيناريوهات الموجودة في مشروع Apidog الخاص بك. بما أن الاختبارات مرتبطة بالمشروع، فإن واجهة سطر الأوامر تسحب التعريف الحالي بدلاً من قراءة مجلد محلي يجب عليك مزامنته يدويًا. إذا كنت تريد شرحًا كاملاً، فإن دليل تثبيت Apidog CLI و الدليل الكامل لواجهة سطر الأوامر (CLI) يغطيان الإعداد من البداية إلى النهاية.
ما الذي يشغله كل منهما، ومن أين يقرأ
هذا هو أكبر تقسيم عملي في قرار apidog cli مقابل insomnia cli.
يشير inso إلى المجموعات والمواصفات بالاسم. يمكنك توجيهه إلى مستند تصميم أو مجموعة باسم عرضها، ويجد التعريف في دليل .insomnia في دليل العمل الخاص بك (الذي تم إنشاؤه بواسطة Insomnia’s Git Sync) أو في دليل بيانات تطبيق Insomnia إذا كان التطبيق مثبتًا. يمكنك تجاوز الموقع باستخدام --workingDir أو --src.
inso run test "Smoke Suite" --env "CI"
inso run collection "User API" --env "Staging"
inso script seed-data --env env_staging
النموذج القائم على الاسم نظيف إذا قام فريقك بالالتزام بمجلد .insomnia ويعتبره مصدر الحقيقة. وهذا يعني أن عملية سحب CI الخاصة بك تحتاج إلى وجود هذا المجلد، ويجب أن تظل الأسماء ثابتة.
يقوم Apidog CLI بتشغيل سيناريوهات الاختبار التي توجد في مشروع Apidog. تقوم بالمصادقة باستخدام تسجيل دخول أو رمز وصول، ثم تقوم بتشغيل سيناريو أو مجموعة مقابل بيئة مختارة. يأتي التعريف من المشروع، لذلك فإن نفس السيناريو الذي أنشأه فريقك في الواجهة الرسومية هو ما يتم تشغيله في CI، لا يوجد مجلد للالتزام به ومزامنته.
apidog run -t <scenario-or-collection> -e <environment>
لا يوجد نموذج خاطئ. يفضل inso مجلدًا محليًا ملتزمًا بـ Git. بينما يفضل Apidog مشروعًا متزامنًا مسجلًا. اختر النموذج الذي يتوافق مع طريقة فريقك في مشاركة تعريفات API.
الاختبار القائم على البيانات
إذا كنت بحاجة إلى تشغيل نفس السيناريو عبر العديد من صفوف الإدخال، فهذا مهم.
يدعم Apidog CLI الاختبار الموجه بالبيانات مباشرةً باستخدام -d، والذي يشير إلى مجموعة بيانات CSV أو JSON. يصبح كل صف تكرارًا بمتغيراته الخاصة، بحيث يغطي سيناريو واحد عشرات الحالات.
apidog run -t "Checkout Flow" -e "Staging" -d ./datasets/orders.csv
النمط الكامل، بما في ذلك كيفية ربط المتغيرات بالأعمدة، موجود في الاختبار الموجه بالبيانات باستخدام Apidog CLI.
لا يعرض inso علامة (flag) موجهة بالبيانات في أوامر التشغيل الخاصة به. يمكنك استخدام المعلمات (parameterize) عبر البيئات، ويمكنك دفع التكرارات عن طريق البرمجة حول inso في مهمة CI الخاصة بك، ولكن التكرار صفًا بصف عبر CSV/JSON ليس ميزة أساسية لواجهة سطر الأوامر بالطريقة التي هي عليها في Apidog. إذا كان التكرار عبر مجموعة بيانات أمرًا محوريًا لمجموعتك، فهذا فرق حقيقي يجب أخذه في الاعتبار.
التقارير: ما تحصل عليه
التقارير هي كيفية إخبارك CI بما حدث. كلا الأداتين تفشلان البناء عند وجود تأكيد فاشل، لكنهما تختلفان في تنسيقات الإخراج.
ينتج Apidog CLI تقارير بتنسيقات CLI و HTML و JSON. يُعد تنسيق CLI جيدًا للمسح السريع للسجلات، ويمنحك HTML مادة قابلة للمشاركة، بينما يغذي JSON لوحات المعلومات أو أدوات المتابعة. يمكنك أيضًا دفع النتائج إلى السحابة باستخدام --upload-report للحصول على تقرير مستضاف وقابل للربط. دليل تقارير اختبار Apidog CLI يشرح كل تنسيق.
يطبع inso نتائج الاختبار إلى وحدة التحكم ويشير إلى النجاح/الفشل عبر رمز الخروج، وهو ما تعتمد عليه معظم أنظمة CI. هذا يغطي الحاجة الأساسية. إذا كنت تريد قطعة أثرية (artifact) غنية بتنسيق HTML أو تقريرًا مستضافًا بدون أدوات إضافية، فإن Apidog يمنحك المزيد هنا.
التدقيق اللغوي (Linting): المقارنة الصريحة
هذا هو المكان الذي يتمتع فيه inso بميزة حقيقية، وسيكون من الإجحاف التظاهر بخلاف ذلك.
يقوم inso بتدقيق مواصفات OpenAPI باستخدام inso lint spec، والمدقق (linter) الأساسي هو Spectral، مدقق OpenAPI المعروف من Stoplight. هذا يعني أنه يمكنك فرض دليل الأسلوب، واكتشاف مشاكل العقود، ومنع عمليات الدمج بناءً على جودة المواصفات، كل ذلك من نفس واجهة سطر الأوامر (CLI) التي تشغل اختباراتك.
inso lint spec "Payments API"
inso export spec "Payments API" --output openapi.yaml
بالنسبة للفرق التي تتبع تصميم "المواصفات أولاً" وترغب في تطبيق قواعد التدقيق (lint) في CI، فهذا سبب قوي وحقيقي لاختيار inso.
والآن النظير الصادق لـ Apidog. لا يحتوي Apidog CLI على مدقق OpenAPI مستقل، أو دليل أسلوب، أو أمر تقسيم، أو دمج، أو تجميع. يتحقق Apidog من صحة المواصفات عند استيرادها، مما يكتشف المشاكل الهيكلية، ولكنه تحقق عند الاستيراد، وليس أمر lint تقوم بتشغيله مقابل دليل أسلوب في CI. لا تتوقع أن يحل Apidog CLI محل Spectral. إذا كان تدقيق العقود في خط الأنابيب مطلبًا صارمًا وليس لديك خطوة Spectral منفصلة، فإن inso يغطي ذلك بينما لا يفعل Apidog.
بدلاً من ذلك، يكسب Apidog مكانه في التكامل وإدارة الموارد، وهو القسم التالي.
الموارد والفروع كتعليمات برمجية
يمكن لـ Apidog CLI أن يفعل شيئًا لا يفعله inso: إدارة موارد API كتعليمات برمجية. من الطرفية، يمكنك استيراد OpenAPI والعمل مع نقاط النهاية، والمخططات، والبيئات، والفروع، وطلبات الدمج. وهذا يتيح لك برمجة تغييرات تصميم API وربطها بنفس الأتمتة التي تشغل الاختبارات.
يبقى inso في مجاله كأداة تشغيل ومدقق. يمكنه تصدير مواصفة، لكنه ليس واجهة سطر أوامر (CLI) لإدارة الموارد لتعديل نقاط النهاية أو إدارة الفروع.
بالنسبة للفرق التي تريد أن يتم التحكم في تعريف API الخاص بها وعمليات تشغيل الاختبارات بواسطة نفس واجهة سطر الأوامر (CLI)، فإن واجهة "المورد كتعليمات برمجية" في Apidog تمثل ميزة ذات مغزى. وهذا جزء من سبب تحول اختيار inso مقابل apidog غالبًا إلى سؤال منصة بدلاً من سؤال حول المشغل.
تكامل المنصة، المصدر المفتوح، والتسعير
inso هو جزء من نظام بيئي مفتوح المصدر. Insomnia نفسه مفتوح المصدر، وهو ما يجذب الفرق التي ترغب في فحص أدواتها أو استضافتها ذاتيًا. تجدر الإشارة بصراحة للتخطيط: قدم Insomnia 8 في عام 2023 حسابًا سحابيًا/تسجيل دخول إلزاميًا أثار ردود فعل سلبية، وكانت هناك حوادث ترحيل وفقدان للبيانات في تلك الفترة. إذا كان فريقك يقيّم تلك الأحداث، فإن مقالاتنا حول استعادة وترحيل بيانات Insomnia المفقودة و كيفية استعادة وتصدير بيانات Insomnia تغطي التفاصيل. لا يغير أي من ذلك حقيقة أن inso CLI هو أداة تشغيل قوية ومجانية مع تدقيق Spectral مدمج.
Apidog هي منصة تجارية ذات طبقة مجانية. تتمثل فكرتها الأساسية في التكامل: تقوم بالتصميم، والمحاكاة، والتوثيق، وتصحيح الأخطاء، والاختبار في مكان واحد، وواجهة سطر الأوامر (CLI) هي واجهة الأتمتة لمساحة العمل تلك. لست بحاجة إلى تجميع أداة تصميم منفصلة، وخادم وهمي، ومشغل معًا. للحصول على نظرة أوسع للمنتج، راجع Apidog مقابل Insomnia و Insomnia مقابل Apidog. إذا كنت ترغب في تجربة المشغل مقابل واجهة برمجة تطبيقات حية أولاً، فإن كيفية استخدام Insomnia لاختبار API و اختبار REST API من سطر الأوامر هي أدلة جيدة للبدء.
ربط CI، باختصار
تندمج كلتا الأداتين في خط الأنابيب بنفس الطريقة: التثبيت، المصادقة أو التوجيه إلى بياناتك، التشغيل، والسماح لرمز الخروج بحظر البناء.
# inso in CI
- run: brew install inso
- run: inso run test "Smoke Suite" --env "CI"
# Apidog CLI in CI
- run: apidog run -t "Smoke Suite" -e "CI" -r html,json
إذا كنت تقوم ببناء هذا، فإن دليل خط أنابيب CI/CD لـ Apidog CLI و الشرح التفصيلي لـ GitHub Actions يغطيان المصادقة، التخزين المؤقت، وتحميل التقارير. تفاصيل المصادقة للمشغل موجودة في دليل مصادقة Apidog CLI.
الخلاصة
لا يوجد فائز واحد. يعتمد القرار الصادق على كيفية عمل فريقك.
اختر inso إذا كنت تستخدم Insomnia بالفعل، وتلتزم بمجلد .insomnia، وترغب في تطبيق تدقيق Spectral للمواصفات في CI من نفس الأداة التي تشغل اختباراتك. إن النظام البيئي مفتوح المصدر والمدقق المدمج هما نقاط قوة حقيقية، وأداة التشغيل المجانية التي تعتمد على الاسم تتناسب تمامًا مع الفرق التي تضع Insomnia أولاً.
اختر Apidog CLI إذا كنت ترغب في منصة واحدة للتصميم، المحاكاة، التوثيق، والاختبار، مع عمليات تشغيل موجهة بالبيانات عبر -d، وتقارير أغنى (CLI، HTML، JSON، بالإضافة إلى التقارير المستضافة)، وإدارة الموارد والفروع كتعليمات برمجية. ستتخلى عن مدقق CLI مستقل، ولكنك ستحصل على سير عمل متكامل حيث ما تصممه هو ما تختبره. ترحيل الإعداد الحالي مباشر؛ راجع الترحيل من inso (Insomnia CLI) إلى Apidog CLI.
هل أنت مستعد للمقارنة عمليًا؟ قم بتنزيل Apidog وقم بتشغيل سيناريو مقابل واجهة برمجة التطبيقات الخاصة بك.
