Postman: ما هو، اختبار واجهات API والعمل مع الطلبات

المؤلف: IT Sectr نُشر: 2026-05-08 وقت القراءة: 9 دق

Postman — منصة لاختبار واجهات API بواجهة رسومية، تدعم بروتوكولات REST وGraphQL وWebSocket وgRPC. تتيح الأداة إنشاء وإرسال طلبات HTTP وتنظيمها في مجموعات وأتمتة الاختبار عبر السكريبتات وإنشاء توثيق للـ endpoints. وفقًا لـ Postman Learning Center (2026)، يستخدم المنصة أكثر من 25 مليون مطور حول العالم.

النقاط الرئيسية

  • Postman — عميل واجهات API متعدد الاستخدامات مع محرر مرئي للطلبات ومجموعات ومتغيرات بيئة.
  • Collections تجمع الطلبات في مجموعات مع إمكانية تشغيلها عبر Collection Runner مع فحوصات بلغة JavaScript.
  • متغيرات البيئة تتيح التبديل بين dev وstaging وproduction دون تغيير الطلبات يدويًا.
  • أتمتة الاختبارات تُنفَّذ عبر Pre-request Scripts وTests بلغة JavaScript مع فحوصات غير متزامنة.
  • التوثيق يُولَّد تلقائيًا بناءً على المجموعة مع دعم Markdown وأمثلة برمجية بلغات مختلفة.

ما هو Postman والميزات الرئيسية

Postman هو منصة لتطوير واختبار واجهات API، متاحة كتطبيق سطح مكتب (Windows وmacOS وLinux) ونسخة ويب. أُنشئ في الأصل كإضافة لـ Chrome في عام 2012، وتطور Postman إلى منظومة متكاملة مع دعم المراقبة وmock servers وتوليد كود العميل.

تنسيقات الطلبات والاستجابات

يدعم Postman جميع طرق HTTP: GET وPOST وPUT وPATCH وDELETE وHEAD وOPTIONS. يمكن أن يكون جسم الطلب بتنسيقات JSON وXML وform-data وx-www-form-urlencoded وbinary. تُعرض الاستجابة مع تلوين الصياغة وPretty-print وإمكانية عرض الرؤوس الخام.

دعم المصادقة

تشمل أنواع المصادقة المدمجة Bearer Token وBasic Auth وDigest Auth وOAuth 1.0 وOAuth 2.0 وAPI Key وAWS Signature. يضيف Postman تلقائيًا رؤوس Authorization وفقًا للنوع المحدد، مما يسرّع اختبار الـ endpoints المحمية دون نسخ الرموز يدويًا.

واجهة Postman والتنقل

واجهة Postman تتكون من لوحة جانبية (Collections وAPIs وEnvironments) ومنطقة عمل (Request Builder/Response Viewer) ولوحة سفلية (Console وRunner). تتيح علامة Params تحرير معلمات الاستعلام في عنوان URL بجدول، وتدير علامة Headers رؤوس HTTP.

Postman Console

يسجّل Console (View ← Show Postman Console) جميع طلبات واستجابات الشبكة بالترتيب الزمني، بما في ذلك عمليات إعادة التوجيه الوسيطة والرؤوس. إنها أداة لا غنى عنها عند تصحيح تدفقات OAuth المعقدة وسلاسل إعادة التوجيه عندما يعرض Response Viewer القياسي النتيجة النهائية فقط.

Workspaces والعمل الجماعي

يدعم Postman مساحات عمل جماعية مع إدارة إصدارات المجموعات عبر Fork وMerge. يمكن لأعضاء الفريق التعليق على الطلبات واقتراح تغييرات ومزامنة المجموعات في الوقت الفعلي. يتيح Public Workspace نشر توثيق واجهات API للمطورين الخارجيين.

إنشاء وإرسال طلبات HTTP

يتم إنشاء طلب أساسي في Postman باختيار طريقة HTTP وإدخال عنوان URL في شريط العنوان. بعد الإرسال، تُعرض الاستجابة في اللوحة السفلية مع رمز الحالة ووقت التنفيذ والحجم. يتم ترميز معلمات الطلب تلقائيًا أثناء الإدخال.

المتغيرات الديناميكية والمقاطع البرمجية

يمكن استخدام متغيرات ديناميكية بالتنسيق {{$variable}} في عنوان URL وجسم الطلب. تولّد المتغيرات المدمجة {{$guid}} و{{$timestamp}} و{{$randomInt}} قيمًا فريدة لكل طلب. المقاطع البرمجية متاحة عبر زر Code ()، الذي يولّد طلبًا مكافئًا بلغات cURL وPython وJavaScript وKotlin وSwift وغيرها.

javascript
// مثال لسكريبت في Pre-request: توليد توقيع HMAC
const timestamp = Date.now().toString();
const secret = pm.environment.get("api_secret");
const hash = CryptoJS.HmacSHA256(timestamp, secret);
pm.request.headers.add({
    key: "X-Signature",
    value: hash.toString()
});

المجموعات ومتغيرات البيئة

المجموعات هي مجموعات من الطلبات المرتبطة والمجمعة حسب المشروع أو الوحدة الوظيفية. يمكن أن تحتوي كل مجموعة على مجلدات متداخلة ورؤوس مشتركة وسكريبتات Pre-request تُنفَّذ قبل كل طلب في المجموعة. يُحدد ترتيب الطلبات بالسحب والإفلات.

متغيرات البيئة والمتغيرات العامة

يدعم Postman خمسة مستويات للمتغيرات: global وcollection وenvironment وdata وlocal. أولوية حل التعارضات — من المحلي إلى العام. تحتوي ملفات البيئة على أزواج مفتاح-قيمة لبيئات مختلفة: development وstaging وproduction. يؤدي تبديل البيئة إلى تغيير جميع عناوين URL والرموز تلقائيًا.

المستوى نطاق الرؤية الأولوية
Local الطلب الحالي 1 (الأعلى)
Data Collection Runner (من CSV/JSON) 2
Environment البيئة النشطة 3
Collection المجموعة بأكملها 4
Global مساحة العمل بأكملها 5

أتمتة اختبار واجهات API عبر السكريبتات

يتيح Postman كتابة اختبارات بلغة JavaScript في علامة Tests تُنفَّذ بعد استلام الاستجابة. تتحقق الاختبارات من رمز الحالة وجسم الاستجابة والرؤوس ووقت التنفيذ. تُعرض النتائج في لوحة Test Results مع مؤشرات نجاح ملونة.

مكتبة pm وسلسلة الطلبات

يوفر كائن pm طرقًا للعمل مع الاستجابة: pm.response وpm.expect وpm.variables. تُنفَّذ سلسلة الطلبات بحفظ بيانات استجابة أحد الطلبات في متغير واستخدامها في الطلب التالي. هذا هو الأساس لبناء اختبارات التكامل والتحقق من منطق الأعمال عبر تسلسل استدعاءات API.

javascript
// اختبار: التحقق من بنية الاستجابة وحفظ الرمز
pm.test("Status code is 200", () => {
    pm.response.to.have.status(200);
});

const json = pm.response.json();
pm.environment.set("auth_token", json.data.token);

Collection Runner وNewman

يشغّل Collection Runner جميع طلبات المجموعة بالتسلسل، منفذًا الاختبارات في كل خطوة. Newman هو نسخة سطر الأوامر من Postman لخطوط أنابيب CI/CD (Jenkins وGitHub Actions وGitLab CI). يصدّر Newman تقاريرًا بتنسيقات JSON وJUnit وHTML للتكامل مع أنظمة المراقبة.

العمل مع GraphQL وWebSocket

تُرسل طلبات GraphQL في Postman عبر POST إلى endpoint واحد بجسم بتنسيق JSON. توفر علامة GraphQL (Beta) محررًا مرئيًا مع تلوين الصياغة وإكمال الحقول تلقائيًا والمخطط. تُمرَّر متغيرات الطلب في لوحة Variables منفصلة.

اختبار WebSocket وSocket.IO

يدعم Postman اتصالات WebSocket عبر واجهة منفصلة مع لوحة رسائل. يمكن إرسال رسائل نصية وثنائية وعرض سجل الاتصال وإعادة الاتصال تلقائيًا عند الانقطاع. يعمل عميل Socket.IO في وضع التوافق مع بروتوكول Engine.IO.

javascript
// اختبار WebSocket في Postman عبر pm API
const ws = new WebSocket("wss://echo.websocket.org");
ws.onmessage = (event) => {
    pm.test("Echo response received", () => {
        pm.expect(event.data).to.eql("Hello");
    });
};

Mock servers والمراقبة في Postman

تتيح mock servers في Postman محاكاة endpoints لـ API استنادًا إلى المجموعات الموجودة. وهذا مفيد عندما لا يكون الباك-إند جاهزًا بعد، بينما يتم تطوير الواجهة الأمامية أو تطبيق الجوال بالفعل. يعيد الخادم الوهمي استجابة مثال من المجموعة برؤوس ورمز حالة صحيحين.

إنشاء Mock server

يتم إنشاء خادم وهمي من المجموعة بنقرة واحدة: اختر المجموعة ← Mock Servers ← Add a new mock server. يولّد Postman عنوان URL فريدًا يمكن استخدامه في كود التطبيق بدلًا من API الحقيقي. لكل طلب في المجموعة، يعيد الخادم الوهمي Example Response محفوظة، مما يتيح اختبار واجهة المستخدم قبل اكتمال الباك-إند.

مراقبة API عبر Postman Monitors

يشغّل Monitors المجموعة وفقًا لجدول زمني (كل 5 دقائق أو ساعة أو يوم) ويتحقق من توفر API وصحته. عند فشل الاختبار، يرسل المراقب إشعارًا إلى البريد الإلكتروني أو Slack. تعمل المراقبة من سحابة Postman، ولا تتطلب خادمًا منفصلًا وتدعم ما يصل إلى 10,000 طلب شهريًا في الخطة المجانية.

javascript
// اختبار للمراقبة: التحقق من وقت الاستجابة
pm.test("Response time < 2000ms", () => {
    pm.expect(pm.response.responseTime).to.be.below(2000);
});

pm.test("Content-Type is JSON", () => {
    pm.response.to.have.header("Content-Type");
});

الأمان وإدارة الأسرار

يوفر Postman آليات للعمل الآمن مع مفاتيح API. متغيرات من نوع Secret مشفرة ولا تظهر في الواجهة. للعمل الجماعي، استخدم Workspace بأدوار Admin وEditor وViewer.

تشفير المتغيرات

عند إنشاء متغير بيئة، اختر نوع Secret — تُخفى القيمة بعلامات نجوم في جميع الواجهات. لا تُصدَّر الأسرار إلى المجموعة عند المشاركة ولا تظهر في سجلات Newman. يُنصح بتخزين كلمات المرور والرموز فقط في متغيرات Secret.

التكامل مع Vault

يدعم Postman التكامل مع HashiCorp Vault وAWS Secrets Manager. يمكن لسكريبتات Pre-request طلب الأسرار ديناميكيًا من التخزين الخارجي، متجنبةً حفظ البيانات الحساسة في ملفات بيئة المجموعة.

الأمان وإدارة الأسرار

يوفر Postman آليات للعمل الآمن مع مفاتيح API. متغيرات من نوع Secret مشفرة ولا تظهر في الواجهة. للعمل الجماعي، استخدم Workspace بأدوار Admin وEditor وViewer.

تشفير المتغيرات

عند إنشاء متغير بيئة، اختر نوع Secret — تُخفى القيمة بعلامات نجوم في جميع الواجهات. لا تُصدَّر الأسرار إلى المجموعة عند المشاركة ولا تظهر في سجلات Newman. يُنصح بتخزين كلمات المرور والرموز فقط في متغيرات Secret.

التكامل مع Vault

يدعم Postman التكامل مع HashiCorp Vault وAWS Secrets Manager. يمكن لسكريبتات Pre-request طلب الأسرار ديناميكيًا من التخزين الخارجي، متجنبةً حفظ البيانات الحساسة في ملفات بيئة المجموعة.

الأسئلة الشائعة

ما الفرق بين Postman وInsomnia؟

يقدم Postman منظومة أوسع: المجموعات والبيئات والمراقبة وmock servers وNewman لـ CI/CD. تركز Insomnia على الخفة والسرعة مع استهلاك أقل للذاكرة. Postman أفضل للعمل الجماعي، بينما Insomnia للاستخدام الفردي.

كيف أنقل رمز التفويض بين الطلبات؟

في Tests للطلب الأول، احفظ الرمز في البيئة: pm.environment.set("token", pm.response.json().token). في الطلب الثاني، استخدم المتغير {{$token}} في رأس Authorization. سيستبدل Runner القيمة تلقائيًا عند التشغيل المتسلسل.

هل يمكن استيراد أمر cURL إلى Postman؟

نعم، عبر زر Import ← Raw Text. يحلل Postman أمر cURL تلقائيًا وينشئ طلبًا مع الرؤوس والطريقة والجسم. جميع أعلام cURL مدعومة، بما في ذلك -H و-d و-F و-u. التحويل العكسي متاح عبر زر Code ().

كيف أختبر GraphQL في Postman؟

استخدم طلب POST بجسم JSON: {"query": "..."}. توفر علامة GraphQL محررًا مرئيًا مع تحميل المخطط عبر Introspection Query. تُمرَّر متغيرات الطلب في حقل variables من نفس كائن JSON.

ما هو Newman ولماذا هو مطلوب؟

Newman هو نسخة سطر الأوامر من Postman لتشغيل المجموعات في CI/CD. يُثبَّت عبر npm، ويدعم تقارير HTML والتكامل مع Jenkins وGitHub Actions وGitLab CI. يتيح أتمتة اختبارات الانحدار لواجهات API دون واجهة رسومية.

الخلاصة

  • Postman منصة عالمية لاختبار واجهات REST وGraphQL وWebSocket وgRPC API مع 25 مليون مستخدم.
  • المجموعات تجمع الطلبات حسب المشروع مع دعم المجلدات المتداخلة والسكريبتات المشتركة.
  • متغيرات البيئة تضمن الانتقال السلس بين dev وstaging وproduction دون تحرير يدوي.
  • أتمتة الاختبارات تُنفَّذ عبر سكريبتات JavaScript مع كائن pm وCollection Runner للتشغيل الدفعي.
  • Newman يتكامل في خطوط أنابيب CI/CD لاختبارات الانحدار لواجهات API في كل نشر.
  • المتغيرات الديناميكية تبسط الاختبار ببيانات فريدة عبر $guid و$timestamp و$randomInt.
  • دعم WebSocket وGraphQL يوسع نطاق استخدام Postman إلى ما بعد طلبات REST التقليدية.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا