Postman — منصة لاختبار واجهات API بواجهة رسومية، تدعم بروتوكولات REST وGraphQL وWebSocket وgRPC. تتيح الأداة إنشاء وإرسال طلبات HTTP وتنظيمها في مجموعات وأتمتة الاختبار عبر السكريبتات وإنشاء توثيق للـ endpoints. وفقًا لـ Postman Learning Center (2026)، يستخدم المنصة أكثر من 25 مليون مطور حول العالم.
النقاط الرئيسية
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 تتكون من لوحة جانبية (Collections وAPIs وEnvironments) ومنطقة عمل (Request Builder/Response Viewer) ولوحة سفلية (Console وRunner). تتيح علامة Params تحرير معلمات الاستعلام في عنوان URL بجدول، وتدير علامة Headers رؤوس HTTP.
يسجّل Console (View ← Show Postman Console) جميع طلبات واستجابات الشبكة بالترتيب الزمني، بما في ذلك عمليات إعادة التوجيه الوسيطة والرؤوس. إنها أداة لا غنى عنها عند تصحيح تدفقات OAuth المعقدة وسلاسل إعادة التوجيه عندما يعرض Response Viewer القياسي النتيجة النهائية فقط.
يدعم Postman مساحات عمل جماعية مع إدارة إصدارات المجموعات عبر Fork وMerge. يمكن لأعضاء الفريق التعليق على الطلبات واقتراح تغييرات ومزامنة المجموعات في الوقت الفعلي. يتيح Public Workspace نشر توثيق واجهات API للمطورين الخارجيين.
يتم إنشاء طلب أساسي في Postman باختيار طريقة HTTP وإدخال عنوان URL في شريط العنوان. بعد الإرسال، تُعرض الاستجابة في اللوحة السفلية مع رمز الحالة ووقت التنفيذ والحجم. يتم ترميز معلمات الطلب تلقائيًا أثناء الإدخال.
يمكن استخدام متغيرات ديناميكية بالتنسيق {{$variable}} في عنوان URL وجسم الطلب. تولّد المتغيرات المدمجة {{$guid}} و{{$timestamp}} و{{$randomInt}} قيمًا فريدة لكل طلب. المقاطع البرمجية متاحة عبر زر Code (>)، الذي يولّد طلبًا مكافئًا بلغات cURL وPython وJavaScript وKotlin وSwift وغيرها.
// مثال لسكريبت في 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 |
يتيح Postman كتابة اختبارات بلغة JavaScript في علامة Tests تُنفَّذ بعد استلام الاستجابة. تتحقق الاختبارات من رمز الحالة وجسم الاستجابة والرؤوس ووقت التنفيذ. تُعرض النتائج في لوحة Test Results مع مؤشرات نجاح ملونة.
يوفر كائن pm طرقًا للعمل مع الاستجابة: pm.response وpm.expect وpm.variables. تُنفَّذ سلسلة الطلبات بحفظ بيانات استجابة أحد الطلبات في متغير واستخدامها في الطلب التالي. هذا هو الأساس لبناء اختبارات التكامل والتحقق من منطق الأعمال عبر تسلسل استدعاءات API.
// اختبار: التحقق من بنية الاستجابة وحفظ الرمز
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 هو نسخة سطر الأوامر من Postman لخطوط أنابيب CI/CD (Jenkins وGitHub Actions وGitLab CI). يصدّر Newman تقاريرًا بتنسيقات JSON وJUnit وHTML للتكامل مع أنظمة المراقبة.
تُرسل طلبات GraphQL في Postman عبر POST إلى endpoint واحد بجسم بتنسيق JSON. توفر علامة GraphQL (Beta) محررًا مرئيًا مع تلوين الصياغة وإكمال الحقول تلقائيًا والمخطط. تُمرَّر متغيرات الطلب في لوحة Variables منفصلة.
يدعم Postman اتصالات WebSocket عبر واجهة منفصلة مع لوحة رسائل. يمكن إرسال رسائل نصية وثنائية وعرض سجل الاتصال وإعادة الاتصال تلقائيًا عند الانقطاع. يعمل عميل Socket.IO في وضع التوافق مع بروتوكول Engine.IO.
// اختبار 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 محاكاة endpoints لـ API استنادًا إلى المجموعات الموجودة. وهذا مفيد عندما لا يكون الباك-إند جاهزًا بعد، بينما يتم تطوير الواجهة الأمامية أو تطبيق الجوال بالفعل. يعيد الخادم الوهمي استجابة مثال من المجموعة برؤوس ورمز حالة صحيحين.
يتم إنشاء خادم وهمي من المجموعة بنقرة واحدة: اختر المجموعة ← Mock Servers ← Add a new mock server. يولّد Postman عنوان URL فريدًا يمكن استخدامه في كود التطبيق بدلًا من API الحقيقي. لكل طلب في المجموعة، يعيد الخادم الوهمي Example Response محفوظة، مما يتيح اختبار واجهة المستخدم قبل اكتمال الباك-إند.
يشغّل Monitors المجموعة وفقًا لجدول زمني (كل 5 دقائق أو ساعة أو يوم) ويتحقق من توفر API وصحته. عند فشل الاختبار، يرسل المراقب إشعارًا إلى البريد الإلكتروني أو Slack. تعمل المراقبة من سحابة Postman، ولا تتطلب خادمًا منفصلًا وتدعم ما يصل إلى 10,000 طلب شهريًا في الخطة المجانية.
// اختبار للمراقبة: التحقق من وقت الاستجابة
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.
يدعم Postman التكامل مع HashiCorp Vault وAWS Secrets Manager. يمكن لسكريبتات Pre-request طلب الأسرار ديناميكيًا من التخزين الخارجي، متجنبةً حفظ البيانات الحساسة في ملفات بيئة المجموعة.
يوفر Postman آليات للعمل الآمن مع مفاتيح API. متغيرات من نوع Secret مشفرة ولا تظهر في الواجهة. للعمل الجماعي، استخدم Workspace بأدوار Admin وEditor وViewer.
عند إنشاء متغير بيئة، اختر نوع Secret — تُخفى القيمة بعلامات نجوم في جميع الواجهات. لا تُصدَّر الأسرار إلى المجموعة عند المشاركة ولا تظهر في سجلات Newman. يُنصح بتخزين كلمات المرور والرموز فقط في متغيرات Secret.
يدعم Postman التكامل مع HashiCorp Vault وAWS Secrets Manager. يمكن لسكريبتات Pre-request طلب الأسرار ديناميكيًا من التخزين الخارجي، متجنبةً حفظ البيانات الحساسة في ملفات بيئة المجموعة.
الأسئلة الشائعة
يقدم Postman منظومة أوسع: المجموعات والبيئات والمراقبة وmock servers وNewman لـ CI/CD. تركز Insomnia على الخفة والسرعة مع استهلاك أقل للذاكرة. Postman أفضل للعمل الجماعي، بينما Insomnia للاستخدام الفردي.
في Tests للطلب الأول، احفظ الرمز في البيئة: pm.environment.set("token", pm.response.json().token). في الطلب الثاني، استخدم المتغير {{$token}} في رأس Authorization. سيستبدل Runner القيمة تلقائيًا عند التشغيل المتسلسل.
نعم، عبر زر Import ← Raw Text. يحلل Postman أمر cURL تلقائيًا وينشئ طلبًا مع الرؤوس والطريقة والجسم. جميع أعلام cURL مدعومة، بما في ذلك -H و-d و-F و-u. التحويل العكسي متاح عبر زر Code (>).
استخدم طلب POST بجسم JSON: {"query": "..."}. توفر علامة GraphQL محررًا مرئيًا مع تحميل المخطط عبر Introspection Query. تُمرَّر متغيرات الطلب في حقل variables من نفس كائن JSON.
Newman هو نسخة سطر الأوامر من Postman لتشغيل المجموعات في CI/CD. يُثبَّت عبر npm، ويدعم تقارير HTML والتكامل مع Jenkins وGitHub Actions وGitLab CI. يتيح أتمتة اختبارات الانحدار لواجهات API دون واجهة رسومية.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا