ویرگول
ورودثبت نام
Nastooh
Nastooh
Nastooh
Nastooh
خواندن ۲ دقیقه·۳ روز پیش

Postman Variables (local, environment, global, collection) + Precedence + Dynamic Variables-Postman

Variables در Postman چیست؟

Variables مقادیر قابل استفاده مجدد هستند که برای جلوگیری از Hardcoding در Requestها استفاده می‌شوند.

مثال:

{{baseUrl}}/customers {{token}}

انواع Variables در Postman


1. Global Variables

متغیرهایی که در تمام Collections و Environments قابل استفاده هستند.

ویژگی‌ها:

  • عمومی‌ترین سطح

  • قابل استفاده در کل workspace

  • مناسب داده‌های مشترک

مثال:

baseUrl = https://api.com

2. Collection Variables

متغیرهایی که فقط داخل یک Collection قابل استفاده هستند.

ویژگی‌ها:

  • Scope محدود به Collection

  • مناسب داده‌های مرتبط با یک API سیستم

مثال:

token = abc123

3. Environment Variables

متغیرهای وابسته به محیط اجرا (Dev / QA / Prod).

ویژگی‌ها:

  • تغییر رفتار API در محیط‌های مختلف

  • پرکاربرد در تست واقعی

مثال:

baseUrl = https://dev.api.com

4. Local Variables

متغیرهایی که فقط در یک Request یا Script استفاده می‌شوند.

ویژگی‌ها:

  • کوتاه‌مدت

  • فقط در runtime

  • override موقت

مثال:

pm.variables.set("tempToken", "123")

Variable Precedence (اولویت متغیرها)

وقتی چند variable با یک نام وجود داشته باشد، Postman از این ترتیب استفاده می‌کند:

ترتیب اولویت:

  1. Local Variable

  2. Data Variable (Runner)

  3. Environment Variable

  4. Collection Variable

  5. Global Variable


مثال مهم آزمونی:

اگر همه این‌ها وجود داشته باشند:

{{baseUrl}}

و مقدارها:

  • Global: A

  • Collection: B

  • Environment: C

  • Local: D

👉 مقدار نهایی: D (Local)


نکته مهم:

👉 هرچه scope محدودتر باشد → اولویت بالاتر دارد


Dynamic Variables (متغیرهای پویا)

تعریف:

Dynamic Variables متغیرهایی هستند که Postman به صورت خودکار مقدار آن‌ها را در زمان اجرا تولید می‌کند.


مثال‌های مهم:

1. UUID

{{$guid}}

2. Random Email

{{$randomEmail}}

3. Random Number

{{$randomInt}}

4. Current Timestamp

{{$timestamp}}

5. Random Name

{{$randomFirstName}}

کاربرد Dynamic Variables

  • تست داده‌های تصادفی

  • جلوگیری از duplicate data

  • تست concurrency scenarios

  • automation testing

  • load-like simulation


نکات مهم آزمونی (L7 → L8)

1. Scope Awareness

تستر باید بداند variable در چه سطحی تعریف شده:

  • Global = shared

  • Environment = context-based

  • Collection = system-specific

  • Local = runtime only


2. Security Risk

  • Token در Global variable خطرناک است

  • باید در Environment یا Secret store باشد


3. Debugging Issue

اگر مقدار اشتباه بود:

  • مشکل از precedence است نه request


4. Automation Usage

  • Newman + CLI از Environment variables استفاده می‌کند

  • CI/CD pipelines به Environment dependency دارند


5. Dynamic Data Advantage

  • حذف نیاز به 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”

ci cd
۰
۰
Nastooh
Nastooh
شاید از این پست‌ها خوشتان بیاید