لسنوات، كان تشغيل مجموعات Postman خارج تطبيق سطح المكتب يعني غالبًا استخدام أداة واحدة: Newman. ثم أطلقت Postman أداة سطر الأوامر الرسمية Postman CLI، فأصبح لديك خياران لتشغيل المجموعات بدون واجهة رسومية، ودمجها في CI/CD، وتنفيذ نفس اختبارات pm.test. السؤال العملي هو: أيهما يناسب مسار عملك؟
القاعدة المختصرة: استخدم 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
الميزة الأساسية في 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
للمزيد حول علاقته بتطبيق 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
الفرق الأساسي هو التكامل مع السحابة. يمكن لـ 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 بسيط:
- صدّر Collection و Environment من Postman.
- خزّنهما في المستودع.
- ثبّت Newman داخل مهمة CI.
- شغّل الاختبارات.
- اترك رمز الخروج يفشل البناء عند فشل الاختبارات.
مثال 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
هذا النمط يجعل الاختبارات جزءًا من الكود. أي تغيير في Collection يظهر في pull request ويمكن مراجعته مثل أي ملف آخر.
راجع أيضًا:
دمج Postman CLI في CI/CD
نمط Postman CLI مختلف:
- خزّن Collection داخل Postman Workspace.
- أنشئ Postman API key.
- خزّن المفتاح كـ secret في CI.
- سجّل الدخول داخل المهمة.
- شغّل Collection بواسطة المعرّف أو الاسم حسب إعدادك.
- راقب النتائج في منصة 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
هذا النمط مفيد إذا كان الفريق يعمل أساسًا داخل Postman ويريد الاحتفاظ بسجل التشغيل ولوحات النتائج هناك.
القرار المهم هنا: هل تريد أن تكون ملفات الاختبار داخل Git، أم داخل Postman Workspace؟
زاوية الحوكمة
الميزة التي تميز Postman CLI بوضوح هي حوكمة API. يمكن تشغيل فحوصات مثل linting على تعريفات API المخزنة في Postman، والتحقق من قواعد التصميم، والتسمية، والأمان، واكتمال المخطط.
الفكرة العملية:
postman api lint YOUR_API_ID
إذا فشل التعريف في قاعدة معينة، يمكن جعل مهمة 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)