آیا تا به حال سعی کردهاید از یک رستوران بدون منو غذا سفارش دهید؟ کار با APIها بدون ابزاری مثل Postman دقیقاً همین حس را دارد؛ شما میدانید آشپزخانه (سرور) آنجاست، اما نمیدانید چگونه درخواست خود را به درستی بیان کنید تا پاسخ دلخواه را بگیرید. اگر توسعهدهنده وب، تستر نرمافزار یا حتی یک مدیر محصول هستید که نیاز به درک نحوه ارتباط سرویسها با هم دارید، یادگیری پستمن دیگر یک “امتیاز” نیست، بلکه یک “ضرورت” است. در این راهنمای جامع، ما از نصب اولیه تا اجرای تستهای پیچیده را به زبانی ساده بررسی میکنیم تا شما بتوانید با اعتماد به نفس کامل، APIهای خود را مدیریت و دیباگ کنید.
پستمن (Postman) چیست و چرا پادشاه دنیای API است؟
پستمن در ابتدا تنها یک افزونه ساده کروم بود، اما اکنون به یک پلتفرم همکاری قدرتمند برای توسعه API تبدیل شده است. به زبان ساده، Postman رابط کاربری گرافیکی (GUI) است که به شما اجازه میدهد بدون نوشتن حتی یک خط کد در ترمینال یا اسکریپتهای پیچیده، درخواستهای HTTP (مانند GET, POST, PUT, DELETE) را به سرور بفرستید و پاسخ را مشاهده کنید.
چرا باید از پستمن استفاده کنیم؟
- رابط کاربری کاربرپسند: دیگر نیازی به درگیری با دستورات cURL در خط فرمان نیست.
- سازماندهی عالی: میتوانید درخواستهای خود را در “Collections” دستهبندی و ذخیره کنید.
- اتوماسیون: قابلیت نوشتن تستهای خودکار برای بررسی صحت عملکرد API.
- همکاری تیمی: اشتراکگذاری مستندات و کالکشنها با اعضای تیم به سادگی یک کلیک است.
قدم اول: نصب و راهاندازی Postman
برای شروع، باید این ابزار را روی سیستم خود داشته باشید. اگرچه نسخه تحت وب پستمن نیز وجود دارد، اما پیشنهاد ما دانلود نسخه دسکتاپ (Native App) برای دسترسی به تمام قابلیتها و پایداری بیشتر است.
- به وبسایت رسمی Postman.com/downloads بروید.
- نسخه متناسب با سیستم عامل خود (Windows, macOS, یا Linux) را دانلود کنید.
- فایل نصب را اجرا کرده و یک حساب کاربری بسازید (ساخت اکانت برای ذخیره کالکشنهای شما در فضای ابری ضروری است).
آشنایی با محیط کاری (Workspace)
وقتی برای اولین بار نرمافزار را باز میکنید، ممکن است با دکمهها و پنلهای زیادی مواجه شوید. نگران نباشید، بیایید بخشهای اصلی را کالبدشکافی کنیم:
- نوار کناری (Sidebar): سمت چپ صفحه، جایی است که تاریخچه (History) و مجموعههای (Collections) شما قرار دارند.
- سازنده درخواست (Request Builder): بخش مرکزی که در آن نوع متد (GET, POST و…) و URL را وارد میکنید.
- بخش پاسخ (Response Section): پایین صفحه، جایی که نتیجه درخواست (Body, Status Code, Time) نمایش داده میشود.
ساخت اولین درخواست API (The Hello World of APIs)
بیایید دست به کار شویم. برای این آموزش، ما از یک API رایگان و فیک به نام JSONPlaceholder استفاده میکنیم که برای تست عالی است.
ارسال درخواست GET (دریافت اطلاعات)
متد GET برای “خواندن” اطلاعات از سرور استفاده میشود و رایجترین نوع درخواست است.
- در نوار بالایی، روی دکمه + کلیک کنید تا یک تب جدید باز شود.
- نوع متد را روی GET قرار دهید (به صورت پیشفرض همین است).
- در کادر URL، آدرس زیر را وارد کنید:
https://jsonplaceholder.typicode.com/posts/1 - روی دکمه آبی رنگ Send کلیک کنید.
چه اتفاقی افتاد؟در بخش پایین (Response Body)، شما باید یک خروجی JSON ببینید که شامل اطلاعات یک پست (مانند userId, id, title) است. همچنین باید Status: 200 OK را مشاهده کنید که نشاندهنده موفقیت درخواست است.
ارسال درخواست POST (ایجاد اطلاعات جدید)
متد POST زمانی استفاده میشود که میخواهید دادهای را به سرور بفرستید تا ذخیره شود (مثلاً ثبتنام کاربر یا ایجاد یک پست جدید).
- یک تب جدید باز کنید.
- متد را از منوی کشویی به POST تغییر دهید.
- آدرس URL را وارد کنید:
https://jsonplaceholder.typicode.com/posts - به تب Body (زیر نوار URL) بروید.
- گزینه raw را انتخاب کنید و فرمت کناری آن را روی JSON تنظیم کنید.
- کد زیر را در فضای خالی بنویسید:
json{ "title": "آموزش پستمن", "body": "این یک تست برای یادگیری API است.", "userId": 1} - روی Send کلیک کنید.
شما باید پاسخ Status: 201 Created را دریافت کنید که یعنی داده شما با موفقیت ایجاد شد (البته در این API فیک، داده واقعاً در دیتابیس ذخیره نمیشود اما پاسخ سرور واقعی شبیهسازی میشود).
مدیریت متغیرها (Environment Variables)؛ کلید حرفهای شدن
تصور کنید شما دو محیط دارید: یکی برای توسعه (Localhost) و یکی برای محصول نهایی (Production). آیا منطقی است که هر بار URLها را دستی تغییر دهید؟ خیر! اینجاست که “محیطها” یا Environments به کمک میآیند.
چگونه یک Environment بسازیم؟
- در بالا سمت راست، روی آیکون “چشم” یا منوی کشویی Environments کلیک کنید.
- روی Add کلیک کنید و نامی مثل “Local Env” انتخاب کنید.
- یک متغیر (Variable) جدید تعریف کنید:
- Variable:
baseUrl - Initial Value:
https://jsonplaceholder.typicode.com
- Variable:
- ذخیره (Save) کنید.
حالا در درخواستهای خود، به جای نوشتن آدرس کامل، میتوانید بنویسید:{{baseUrl}}/posts/1
پستمن به صورت خودکار مقدار baseUrl را جایگزین میکند. این کار تست کردن در محیطهای مختلف را فوقالعاده سریع میکند.
کالکشنها (Collections): نظم دادن به آشوب
اگر روی پروژههای بزرگ کار میکنید، داشتن صدها درخواست پراکنده کابوس است. کالکشنها مانند پوشههایی هستند که درخواستهای مرتبط را دستهبندی میکنند.
- ساخت کالکشن: در نوار سمت چپ، روی Collections و سپس + کلیک کنید.
- افزودن درخواست: پس از ساخت هر درخواست، دکمه Save را بزنید و کالکشن مورد نظر را انتخاب کنید.
- اجرای گروهی (Runner): میتوانید با استفاده از “Collection Runner”، تمامی درخواستهای یک پوشه را با یک کلیک و پشت سر هم اجرا کنید. این برای تستهای رگرسیون (Regression Testing) عالی است.
اتوماسیون تستها (Writing Tests)
پستمن فقط برای ارسال درخواست نیست؛ بلکه ابزاری قدرتمند برای اعتبارسنجی پاسخهاست. شما میتوانید اسکریپتهایی به زبان جاوا اسکریپت بنویسید که به صورت خودکار بررسی کنند آیا API درست کار میکند یا خیر.
برای نوشتن تست، در هر درخواست به تب Tests بروید.
مثالهای کاربردی تست نویسی:
۱. بررسی کد وضعیت (Status Code):بررسی کنید که آیا درخواست موفقیتآمیز بوده است؟
pm.test("Status code is 200", function () { pm.response.to.have.status(200);});
۲. بررسی زمان پاسخدهی:آیا API به اندازه کافی سریع است؟ (مثلاً زیر ۲۰۰ میلیثانیه)
pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200);});
۳. اعتبارسنجی محتوای JSON:آیا فیلد خاصی در پاسخ وجود دارد؟
pm.test("Response has userId", function () { var jsonData = pm.response.json(); pm.expect(jsonData.userId).to.eql(1);});
پس از نوشتن این کدها و زدن دکمه Send، نتیجه تستها در تب Test Results در پایین صفحه نمایش داده میشود.
[پیشنهاد لینک داخلی: آموزش جاوا اسکریپت مقدماتی برای تسترها]نکات پیشرفته برای کاربران حرفهای
- Pre-request Scripts: کدهایی که قبل از ارسال درخواست اجرا میشوند. مثلاً برای تولید یک Timestamp یا رمزگذاری یک پسورد قبل از ارسال.
- Mock Servers: اگر هنوز بکاند (Backend) آماده نیست، میتوانید با پستمن یک سرور مجازی (Mock) بسازید که پاسخهای ساختگی برمیگرداند تا تیم فرانتاند معطل نماند.
- Monitors: قابلیت نظارت بر APIها به صورت دورهای (مثلاً هر ۵ دقیقه) تا اگر سرویس از کار افتاد، به شما ایمیل بزند.
سوالات متداول
۱. آیا پستمن کاملاً رایگان است؟بله، نسخه رایگان Postman برای اکثر کاربران انفرادی و تیمهای کوچک کاملاً کافی است. نسخههای پولی برای تیمهای بزرگ با نیازهای پیشرفته همکاری و محدودیتهای کمتر در Mock Server ارائه میشوند.
۲. تفاوت Query Params و Path Variables چیست؟
- Path Variable: بخشی از آدرس URL است که منبع خاصی را مشخص میکند (مثلاً
/users/12که ۱۲ شناسه کاربر است). - Query Params: بعد از علامت سوال
?میآید و برای فیلتر کردن یا مرتبسازی استفاده میشود (مثلاً?sort=desc&limit=10).
۳. چگونه توکن احراز هویت (Auth Token) را مدیریت کنیم؟میتوانید توکن را در تب Authorization در سطح Collection تنظیم کنید و نوع آن را (مثلاً Bearer Token) انتخاب کنید. با انتخاب گزینه “Inherit auth from parent” در هر درخواست، دیگر نیازی نیست توکن را برای تک تک درخواستها وارد کنید.
۴. آیا میتوانم درخواستها را از مرورگر به پستمن صادر (Export) کنم؟بله، شما میتوانید از پنل Network مرورگر (Inspect Element)، درخواست را به صورت cURL کپی کرده و در پستمن از طریق گزینه Import > Raw Text وارد کنید تا تمام هدرها و بدنهی درخواست بازسازی شود.
۵. کاربرد Newman چیست؟Newman نسخه خط فرمان (Command Line) پستمن است. این ابزار برای اجرا کردن کالکشنهای پستمن در سیستمهای CI/CD (مانند Jenkins یا GitLab CI) استفاده میشود تا تستهای API به صورت خودکار در فرآیند بیلد نرمافزار اجرا شوند.
جمعبندی و قدم بعدی
یادگیری Postman فراتر از ارسال چند درخواست ساده است؛ این ابزار دروازه ورود شما به دنیای حرفهای توسعه و تست نرمافزار محسوب میشود. ما در این آموزش از نصب اولیه تا مفاهیم محیطها (Environments) و تستنویسی خودکار را پوشش دادیم.
قدم بعدی شما چیست؟ همین حالا نرمافزار را باز کنید، یک Collection جدید به نام “My Learning Journey” بسازید و سعی کنید APIهای مختلف (مثل API آب و هوا یا تبدیل ارز) را فراخوانی کنید. تسلط بر پستمن، قدرت تحلیل و دیباگ شما را چندین برابر میکند و رزومه فنی شما را درخشانتر خواهد کرد. شروع کنید، دنیای APIها منتظر شماست!

