رفتن به محتوای اصلی
فهرست مستندات
شبیه‌سازی یک API

ساخت پاسخ‌های داینامیک Mock Server با Variableها در Postman

به‌روزرسانی ۳ دقیقه مطالعه Postman

فهرست مطالب
  1. استفاده از variableها در mock server
  2. Dynamic variableها
  3. ساخت response بر اساس request با template helper
  4. نمونه contextual response

Mock serverهای Postman معمولا responseهای ثابت را از saved exampleها برمی‌گردانند. اگر می‌خواهید responseها random باشند یا بر اساس request تغییر کنند، می‌توانید dynamic mock response بسازید. این روش کمک می‌کند بدون ساختن یک example جداگانه برای هر حالت، سناریوهای مختلف API را شبیه‌سازی کنید.

استفاده از variableها در mock server

می‌توانید valueها را در variable ذخیره کنید و در requestها یا responseهای collection به کار ببرید. اگر مقدار variable تغییر کند، همان مقدار جدید در همه جا استفاده می‌شود. Mock serverها از environment variable و collection variable پشتیبانی می‌کنند.

  • برای environment variable، environment را در configuration mock server انتخاب کنید.
  • برای collection variable، آن را در تب Variables همان collection تعریف کنید.

Mock serverها از global variable و vault secret پشتیبانی نمی‌کنند. وقتی variable در یک example استفاده شود، mock server آن را resolve می‌کند و با shared value جایگزین می‌کند. اگر environment variable و collection variable نام یکسان داشته باشند، مقدار environment variable اولویت دارد.

Dynamic variableها

Dynamic variableها در body example می‌توانند داده random تولید کنند. این variableها هنگام ساخت response mock server resolve می‌شوند و با داده تصادفی از کتابخانه Faker جایگزین می‌شوند. برای تست exploratory و سناریوهای داده‌محور، این روش بسیار مفید است.

برای نمونه، response body یک example می‌تواند چنین مقدارهایی داشته باشد:

{
  "name": "{{$randomFullName}}",
  "userName": "{{$randomUserName}}",
  "location": "{{$randomCity}}",
  "company": "{{$randomCompanyName}}",
  "jobTitle": "{{$randomJobTitle}}",
  "updatedAt": "{{$timestamp}}"
}

وقتی endpoint mock server را call کنید، Postman مقدارهای random مشابه این برمی‌گرداند:

{
  "name": "Cielo McClure",
  "userName": "Aurelie.Lockman",
  "location": "Kubhaven",
  "company": "Runolfsdottir, Bernhard and Hodkiewicz",
  "jobTitle": "Direct Branding Liaison",
  "updatedAt": "1565088856"
}

ساخت response بر اساس request با template helper

Template یک قالب برای ساخت responseهایی است که با request ورودی تغییر می‌کنند. Template helperها به داده request ورودی دسترسی می‌دهند؛ مثل body، query parameterها، path segmentها و headerها.

اگر response matching برای request body فعال است و می‌خواهید contextual response بسازید، header x-mock-match-request-body را روی false بگذارید؛ وگرنه ممکن است خطای mockRequestNotFoundError بگیرید.

Helperهای اصلی عبارت‌اند از:

  • $body: دسترسی به body request ورودی.
  • $queryParams: دسترسی به query parameterها.
  • $pathSegments: دسترسی به بخش‌های path، مثل /product/id/details.
  • $headers: دسترسی به headerهای request.

برای دسترسی به مقدارهای خاص می‌توانید از syntax کتابخانه object-path استفاده کنید:

  • {{$body}}: برگرداندن کل request body.
  • {{$body 'path.to.property'}}: برگرداندن یک property خاص از body.
  • {{$headers 'header-key'}}: برگرداندن مقدار یک header خاص.
  • {{$queryParams 'parameter-key'}}: برگرداندن مقدار یک query parameter.
  • {{$pathSegments '1'}}: برگرداندن segment دوم path.
  • {{$body 'property' 'default value'}}: تعریف مقدار پیش‌فرض.

نمونه contextual response

در این مثال، template helper مقدار username را از body request می‌خواند و همان مقدار را در response mock server برمی‌گرداند.

  1. در collection mock شده یک request جدید بسازید، در تب Body حالت raw و نوع JSON را انتخاب کنید و این body را وارد کنید:
{
  "username": "postman",
  "password": "12345"
}
  1. به request یک example اضافه کنید و body response آن را به این شکل تنظیم کنید:
{
  "username": "{{$body 'username' 'postman'}}",
  "id": "{{$randomUUID}}"
}
افزودن template helper به example برای response داینامیک mock server
استفاده از template helper در example برای ساخت response داینامیک.
  1. حالا request را با مقدارهای مختلف username به mock server بفرستید. Response مقدار username را از body همان request می‌گیرد.

منبع آموزشی: Postman Docs، بازنویسی و ساده‌سازی‌شده برای کاربران فارسی‌زبان.

ایستگاه بعدی شما

TestRail را همین حالا در محیط دمو ببینید.

محیط تست آماده

دسترسی به دمو TestRail

قبل از ورود، مشخصات زیر را در صفحه ورود محیط دمو وارد کنید.

آدرس دمو

https://demo.testrail.ir

ایمیل ورود

demo@testrail.ir

رمز عبور

demo_user