DEV Community

Cover image for بوستمان CLI ضد نيومان: أي عداء سطر أوامر يجب أن تستخدم؟
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

بوستمان CLI ضد نيومان: أي عداء سطر أوامر يجب أن تستخدم؟

لسنوات، كان تشغيل مجموعات Postman خارج تطبيق سطح المكتب يعني غالبًا استخدام أداة واحدة: Newman. ثم أطلقت Postman أداة سطر الأوامر الرسمية Postman CLI، فأصبح لديك خياران لتشغيل المجموعات بدون واجهة رسومية، ودمجها في CI/CD، وتنفيذ نفس اختبارات pm.test. السؤال العملي هو: أيهما يناسب مسار عملك؟

جرّب Apidog اليوم

القاعدة المختصرة: استخدم Newman عندما تريد مشغلًا مفتوح المصدر لا يحتاج إلى حساب Postman ويعمل مباشرة من ملفات JSON. واستخدم Postman CLI عندما تريد ربط التشغيل بسحابة Postman، وسحب المجموعات من Workspace، وإرسال النتائج إلى منصة Postman.

ما هو Newman؟

Newman هو مشغل مجموعات Postman الأصلي من سطر الأوامر. يتم توزيعه كحزمة npm، وهو مفتوح المصدر ومجاني. يأخذ ملف Collection JSON، ينفذ الطلبات والاختبارات، ثم يعيد رمز خروج مناسبًا يمكن لـ CI استخدامه لإنجاح أو إفشال البناء.

مثال تشغيل بسيط:

npm install -g newman

newman run checkout-api.postman_collection.json \
  --environment staging.postman_environment.json
Enter fullscreen mode Exit fullscreen mode

الميزة الأساسية في Newman هي الاستقلالية:

  • لا يحتاج إلى حساب Postman.
  • لا يحتاج إلى API key.
  • لا يعتمد على سحابة Postman.
  • يعمل جيدًا في بيئات CI المقيدة أو الشبكات الداخلية.

لإنتاج تقارير قابلة للأرشفة داخل CI، يمكنك استخدام JUnit أو HTML reporter:

npm install -g newman newman-reporter-htmlextra

newman run checkout-api.postman_collection.json \
  --environment staging.postman_environment.json \
  --reporters cli,junit,htmlextra \
  --reporter-junit-export reports/newman.xml \
  --reporter-htmlextra-export reports/newman.html
Enter fullscreen mode Exit fullscreen mode

للمزيد حول علاقته بتطبيق Postman نفسه، راجع دليلنا عن الفرق بين Newman و Postman.

ما هو Postman CLI؟

Postman CLI هي أداة سطر الأوامر الرسمية من Postman. تُثبَّت كثنائي مستقل، وترتبط بحساب Postman عبر API key.

مثال تثبيت وتشغيل:

# install: example for macOS/Linux
curl -o- "https://dl-cli.pstmn.io/install/osx_64.sh" | sh

# authenticate
postman login --with-api-key YOUR_API_KEY

# run a collection
postman collection run checkout-api
Enter fullscreen mode Exit fullscreen mode

الفرق الأساسي هو التكامل مع السحابة. يمكن لـ Postman CLI:

  • سحب Collection من Postman Workspace بواسطة المعرّف.
  • تشغيل الاختبارات داخل CI.
  • إرسال نتائج التشغيل إلى منصة Postman.
  • دعم فحوصات الحوكمة والتدقيق مثل API linting عند استخدام تعريفات API داخل Postman.

لذلك، Postman CLI ليس مجرد بديل أحدث لـ Newman. هو أقرب إلى وكيل CI/CD لمنصة Postman، بينما Newman هو مشغل Collections مستقل.

مقارنة سريعة

الجانب Postman CLI Newman
المصدر أداة Postman الرسمية، مغلقة المصدر مفتوح المصدر
التثبيت سكريبت تثبيت وثنائي مستقل حزمة npm
حساب Postman مطلوب عبر API key غير مطلوب
مصدر Collection من سحابة Postman أو ملف محلي ملف JSON محلي
نتائج التشغيل تُرسل إلى منصة Postman تظهر في الطرفية أو ملفات تقارير
حوكمة API / linting مدعومة غير مدعومة
التقارير مرتبطة غالبًا بمنصة Postman CLI، JUnit، HTML عبر إضافات
العمل دون اتصال محدود ممكن عند توفر الملفات محليًا
النضج أحدث معيار مجتمعي قديم ومستقر
التكلفة مجاني، مع ارتباط بحدود خطة Postman مجاني ولا يحتاج إلى حساب

الخلاصة العملية: إذا كان مصدر الحقيقة عندك هو مستودع Git، فـ Newman غالبًا أبسط. إذا كان مصدر الحقيقة هو Postman Workspace، فـ Postman CLI أكثر ملاءمة.

دمج Newman في CI/CD

نمط Newman في CI بسيط:

  1. صدّر Collection و Environment من Postman.
  2. خزّنهما في المستودع.
  3. ثبّت Newman داخل مهمة CI.
  4. شغّل الاختبارات.
  5. اترك رمز الخروج يفشل البناء عند فشل الاختبارات.

مثال GitHub Actions:

name: API Tests

on:
  push:
    branches: [main]
  pull_request:

jobs:
  newman:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Newman
        run: npm install -g newman newman-reporter-htmlextra

      - name: Run API tests
        run: |
          mkdir -p reports
          newman run tests/checkout-api.postman_collection.json \
            --environment tests/staging.postman_environment.json \
            --reporters cli,junit,htmlextra \
            --reporter-junit-export reports/newman.xml \
            --reporter-htmlextra-export reports/newman.html
Enter fullscreen mode Exit fullscreen mode

هذا النمط يجعل الاختبارات جزءًا من الكود. أي تغيير في Collection يظهر في pull request ويمكن مراجعته مثل أي ملف آخر.

راجع أيضًا:

دمج Postman CLI في CI/CD

نمط Postman CLI مختلف:

  1. خزّن Collection داخل Postman Workspace.
  2. أنشئ Postman API key.
  3. خزّن المفتاح كـ secret في CI.
  4. سجّل الدخول داخل المهمة.
  5. شغّل Collection بواسطة المعرّف أو الاسم حسب إعدادك.
  6. راقب النتائج في منصة Postman.

مثال GitHub Actions مبسط:

name: Postman CLI Tests

on:
  push:
    branches: [main]
  pull_request:

jobs:
  postman-cli:
    runs-on: ubuntu-latest

    steps:
      - name: Install Postman CLI
        run: curl -o- "https://dl-cli.pstmn.io/install/linux64.sh" | sh

      - name: Login to Postman
        run: postman login --with-api-key "${{ secrets.POSTMAN_API_KEY }}"

      - name: Run collection
        run: postman collection run checkout-api
Enter fullscreen mode Exit fullscreen mode

هذا النمط مفيد إذا كان الفريق يعمل أساسًا داخل Postman ويريد الاحتفاظ بسجل التشغيل ولوحات النتائج هناك.

القرار المهم هنا: هل تريد أن تكون ملفات الاختبار داخل Git، أم داخل Postman Workspace؟

زاوية الحوكمة

الميزة التي تميز Postman CLI بوضوح هي حوكمة API. يمكن تشغيل فحوصات مثل linting على تعريفات API المخزنة في Postman، والتحقق من قواعد التصميم، والتسمية، والأمان، واكتمال المخطط.

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

postman api lint YOUR_API_ID
Enter fullscreen mode Exit fullscreen mode

إذا فشل التعريف في قاعدة معينة، يمكن جعل مهمة CI تفشل قبل الدمج.

Newman لا يقدم بديلًا مباشرًا لهذه الوظيفة. نطاقه هو تشغيل Collections والإبلاغ عن نتائج الاختبارات فقط. لذلك:

  • اختر Postman CLI إذا كانت حوكمة تصميم API جزءًا من pipeline.
  • اختر Newman إذا كان المطلوب فقط تشغيل اختبارات API من Collections.

اعتبارات الترحيل من Newman إلى Postman CLI

إذا كان لديك Newman يعمل بالفعل في CI، فلا يوجد سبب تلقائي للانتقال. الترحيل يعني عادةً:

  • إضافة Postman API key كـ secret.
  • نقل مصدر الحقيقة من Git إلى Postman أو مزامنته.
  • تغيير أوامر CI.
  • الاعتماد على اتصال بسحابة Postman.
  • تغيير طريقة حفظ التقارير.

انتقل إلى Postman CLI فقط إذا كنت تحتاج فعلًا إلى:

  • سجل تشغيل مركزي داخل Postman.
  • Dashboards داخل Postman.
  • API linting وحوكمة في CI.
  • إدارة الاختبارات من Workspace بدل المستودع.

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

أيهما تختار؟

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

  • تشغيل Collections بدون حساب Postman.
  • تخزين الاختبارات مع الكود داخل Git.
  • تشغيل CI في بيئة مقيدة أو داخلية.
  • إنشاء تقارير HTML أو JUnit مستقلة.
  • تقليل الاعتماد على السحابة.

اختر Postman CLI إذا كنت تريد:

  • تشغيل Collections من Postman Workspace.
  • إرسال نتائج التشغيل إلى منصة Postman.
  • استخدام Postman كمصدر حقيقة للاختبارات.
  • إضافة حوكمة API وlinting إلى pipeline.
  • إبقاء الفريق داخل نظام Postman البيئي.

إذا كنت تراجع هذا القرار من زاوية أوسع، راجع أيضًا:

بديل بأداة واحدة: Apidog

يفترض كل من Newman وPostman CLI أنك تؤلف الاختبارات داخل Postman أولًا. Apidog يقدم مسارًا مختلفًا: تصميم API، تصحيح الطلبات، بناء سيناريوهات اختبار، وتشغيلها في CI/CD من نفس المنصة.

بدل تصدير Collection ثم تشغيلها بأداة منفصلة، يمكنك بناء سيناريوهات الاختبار داخل Apidog وتشغيلها عبر مشغل CLI المدمج في مسارات العمل.

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

أسئلة مكررة

هل يحل Postman CLI محل Newman؟

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

هل يتطلب Postman CLI حساب Postman؟

نعم. يحتاج Postman CLI إلى المصادقة باستخدام Postman API key، وهو مصمم لربط عمليات التشغيل بـ Postman Workspace. Newman لا يحتاج إلى حساب ويعمل من ملفات Collection محلية.

أيهما يقدم تقارير أفضل؟

Newman أكثر مرونة في ملفات التقارير، خصوصًا مع JUnit وnewman-reporter-htmlextra. Postman CLI يرسل النتائج إلى منصة Postman، وهو مناسب إذا كانت هذه المنصة هي مكان متابعة الفريق للنتائج.

هل يمكن لـ Postman CLI تشغيل ملف Collection محلي؟

نعم، يمكنه تشغيل ملفات محلية، لكنه مصمم أساسًا للتكامل مع Postman Workspace وسحابة Postman. إذا كان الملف المحلي هو مصدر الحقيقة، فـ Newman يناسب هذا النموذج بشكل أوضح.

أيهما أسرع في CI؟

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

Top comments (0)