Variables مقادیر قابل استفاده مجدد هستند که برای جلوگیری از Hardcoding در Requestها استفاده میشوند.
مثال:
{{baseUrl}}/customers {{token}}
متغیرهایی که در تمام Collections و Environments قابل استفاده هستند.
عمومیترین سطح
قابل استفاده در کل workspace
مناسب دادههای مشترک
baseUrl = https://api.com
متغیرهایی که فقط داخل یک Collection قابل استفاده هستند.
Scope محدود به Collection
مناسب دادههای مرتبط با یک API سیستم
token = abc123
متغیرهای وابسته به محیط اجرا (Dev / QA / Prod).
تغییر رفتار API در محیطهای مختلف
پرکاربرد در تست واقعی
baseUrl = https://dev.api.com
متغیرهایی که فقط در یک Request یا Script استفاده میشوند.
کوتاهمدت
فقط در runtime
override موقت
pm.variables.set("tempToken", "123")
وقتی چند variable با یک نام وجود داشته باشد، Postman از این ترتیب استفاده میکند:
Local Variable
Data Variable (Runner)
Environment Variable
Collection Variable
Global Variable
اگر همه اینها وجود داشته باشند:
{{baseUrl}}
و مقدارها:
Global: A
Collection: B
Environment: C
Local: D
👉 مقدار نهایی: D (Local)
👉 هرچه scope محدودتر باشد → اولویت بالاتر دارد
Dynamic Variables متغیرهایی هستند که Postman به صورت خودکار مقدار آنها را در زمان اجرا تولید میکند.
{{$guid}}
{{$randomEmail}}
{{$randomInt}}
{{$timestamp}}
{{$randomFirstName}}
تست دادههای تصادفی
جلوگیری از duplicate data
تست concurrency scenarios
automation testing
load-like simulation
تستر باید بداند variable در چه سطحی تعریف شده:
Global = shared
Environment = context-based
Collection = system-specific
Local = runtime only
Token در Global variable خطرناک است
باید در Environment یا Secret store باشد
اگر مقدار اشتباه بود:
مشکل از precedence است نه request
Newman + CLI از Environment variables استفاده میکند
CI/CD pipelines به Environment dependency دارند
حذف نیاز به manual input
مناسب regression testing
جلوگیری از collision data
اشتباه گرفتن Collection vs Environment variable
ندانستن precedence
استفاده از Global برای sensitive data
عدم استفاده از dynamic variables در test data
hardcoding به جای variables
در پاسخ کامل باید این کلیدواژهها باشند:
Variables, Global, Environment, Collection, Local, Precedence, Scope, Dynamic Variables, Hardcoding, Runtime, CI/CD, Newman
در Postman، Variables برای جلوگیری از hardcoding استفاده میشوند و شامل Global, Collection, Environment و Local هستند. ترتیب اولویت آنها به صورت Local > Data > Environment > Collection > Global است. Dynamic Variables نیز مقادیر تصادفی یا زمانمحور مانند UUID و timestamp را در زمان اجرا تولید میکنند و برای تستهای automation و جلوگیری از دادههای تکراری استفاده میشوند.
Postman Variables Global Variable Environment Variable Collection Variable Local Variable Variable Precedence Scope Dynamic Variables Hardcoding Runtime Data Newman CI/CD Integration
Global Variable (متغیر عمومی): برای دادههای مشترک در کل پروژه استفاده میشود.
Environment Variable (متغیر محیطی): برای مدیریت تنظیمات Dev / QA / Prod استفاده میشود.
Collection Variable (متغیر سطح کالکشن): فقط داخل یک مجموعه API قابل استفاده است.
Local Variable (متغیر محلی): فقط در یک request یا script معتبر است.
Variable Precedence (اولویت متغیرها): تعیین میکند در صورت تداخل چند variable کدام مقدار استفاده شود.
Dynamic Variables (متغیرهای تولیدشده خودکار): برای تولید داده تصادفی یا زمانمحور در تست استفاده میشوند.
Variables یعنی:
👉 “کنترل هوشمند دادهها در API بدون تکرار و بدون hardcode”