مرجع pm.cookies در scriptهای Postman #
با pm.cookies میتوانید cookieهای دامنه request فعلی را در script بخوانید. اگر لازم است cookieهای یک دامنه مشخص را بخوانید یا تغییر دهید، از pm.cookies.jar() استفاده کنید.
pm.cookies #
این متدها روی cookieهای دامنهای کار میکنند که در URL request فعلی قرار دارد.
pm.cookies.has(cookieName): بررسی میکند cookie با نام مشخص وجود دارد یا نه و مقدارtrueیاfalseبرمیگرداند.pm.cookies.get(cookieName): مقدار cookie مشخصشده را برمیگرداند.pm.cookies.toObject(): همه cookieهای دامنه request فعلی را بهصورت object برمیگرداند.
pm.cookies.jar() #
pm.cookies.jar() به شما اجازه میدهد cookieهای یک دامنه مشخص را بخوانید یا تغییر دهید. برای استفاده از این متدها باید ابتدا دامنه موردنظر را در allowlist مربوط به دسترسی cookieها اضافه کنید.
فراخوانیهای Cookie Jar async هستند و با callback اجرا میشوند. اگر چند عملیات وابسته دارید، آنها را داخل callback بهترتیب اجرا کنید.
ذخیره cookie با نام و مقدار #
pm.cookies.jar().set("example.com", "session-id", "abc123", (error, cookie) => {
if (error) {
console.error(`An error occurred: ${error}`);
} else {
console.log(`Cookie saved: ${cookie}`);
}
});
ذخیره cookie با object #
اگر به تنظیمات بیشتری مثل httpOnly نیاز دارید، میتوانید یک Cookie object بسازید و به Cookie Jar بدهید:
var Cookie = require("postman-collection").Cookie,
myCookie = new Cookie({
name: "session-id",
value: "abc123e",
httpOnly: true
});
pm.cookies.jar().set("example.com", myCookie, (error, cookie) => {
if (error) {
console.error(`An error occurred: ${error}`);
} else {
console.log(`Cookie saved: ${cookie}`);
}
});
خواندن و حذف cookieها #
pm.cookies.jar().get(url, cookieName, callback): مقدار یک cookie را برای دامنه مشخص میخواند.pm.cookies.jar().getAll(url, callback): همه cookieهای دامنه مشخص را برمیگرداند.pm.cookies.jar().unset(url, cookieName, callback): یک cookie مشخص را حذف میکند.pm.cookies.jar().clear(url, callback): همه cookieهای دامنه مشخص را پاک میکند.
پاکسازی و سپس ذخیره cookie #
در این نمونه ابتدا همه cookieهای دامنه پاک میشوند و بعد یک cookie جدید ذخیره میشود:
pm.cookies.jar().clear("example.com", (error) => {
pm.cookies.jar().set("example.com", "session-id", "jkl456p", (error, cookie) => {
if (error) {
console.error(`An error occurred: ${error}`);
} else {
console.log(`Cookie saved: ${cookie}`);
}
});
});
چه زمانی از کدام API استفاده کنیم؟ #
- برای cookieهای request فعلی،
pm.cookiesسادهتر است. - برای کار با دامنه مشخص یا نوشتن و حذف cookie،
pm.cookies.jar()مناسبتر است. - برای اینکه عملیات پشت سر هم درست اجرا شوند، در Cookie Jar از callbackها استفاده کنید.
منبع آموزشی: Postman Docs، بازنویسی و سادهسازیشده برای کاربران فارسیزبان.

