کار با اطلاعات متغیر دریافتی از سرور
در Postman یک برگهی جدید را باز کنید و سپس آدرس https://httpbin.org/uuid را در حالت Get درخواست نمائید:
این درخواست، یک Guid اتفاقی جدید را باز میگرداند. هربار که بر روی دکمهی Send کلیک کنیم، مقدار Guid دریافتی متفاوت خواهد بود. این خروجی دقیقا حالتی است که در برنامههای دنیای واقعی با آن سر و کار داریم. در این نوع برنامهها، پیشتر نمیتوان مقدار خروجی دریافتی از سرور را پیشبینی کرد. همچنین علاقمندیم این مقدار دریافتی (از درخواست 1) را به Post request ای که در انتهای قسمت قبل ایجاد کردیم (درخواست 2)، ارسال کنیم و اطلاعاتی را بین درخواستها به اشتراک بگذاریم.
برای این منظور، مجموعهی httpbin ای را که در قسمت قبل ایجاد کردیم، انتخاب کرده و Post request ذخیره شدهی در آنرا انتخاب کنید تا مجددا جزئیات آن بازیابی شود:
اکنون با مراجعه به برگهی بدنهی درخواست آن، قصد داریم یک خاصیت جدید id را با guid دریافتی از سرور توسط درخواستی دیگر، مقدار دهی کنیم:
برای دسترسی به این اطلاعات، میتوان از ویژگی بسیار قدرتمند postman به نام متغیرها استفاده کرد. به همین جهت به برگهی درخواست دریافت guid مراجعه کرده و برگهی Tests آنرا باز کنید:
این قسمت پس از پایان درخواست جاری، اجرا میشود. بنابراین دراینجا فرصت خواهیم داشت تا مقدار دریافتی از سرور را در یک متغیر ذخیره کنیم. سپس میتوان از این متغیر در حین ارسال درخواستی دیگر استفاده کرد. در پنل کنار textbox نوشتن آزمونها، تعدادی نمونه کد هم وجود دارند. برای مثال در اینجا نمونه کد «Set a global variable» را با کلیک بر روی آن انتخاب میکنیم:
pm.globals.set("uuid", "foo");
اکنون مجددا بر روی دکمهی Send این درخواست کلیک کنید. پس از اجرای آن، این قطعه کد اجرا شده و یک متغیر سراسری، با کلید uuid و مقدار ثابت مشخص شده، در تمام برگههای postman در دسترس خواهند بود. برای بررسی صحت این عملیات، میتوانید بر روی دکمهای با آیکن چشم، در بالای سمت راست صفحه، کلیک کنید:
در ادامه برای استفادهی از این متغیر سراسری، به برگهی Post request مراجعه کرده و بدنهی درخواست را به صورت زیر ویرایش میکنیم:
{ "name": "Vahid", "id": "{{uuid}}" }
سپس این درخواست را ارسال کنید، در خروجی دریافتی از سرور httpbin، خاصیت و مقدار جدید id قابل مشاهده هستند که به معنای ارسال صحیح آن به سرور است:
"json": { "id": "foo", "name": "Vahid" },
در این مرحله بر روی دکمهی Save برگهی uuid کلیک کرده و آنرا در مجموعهی httpbin، ذخیره کنید.
روش دسترسی و به اشتراک گذاری مقدار متغیر uuid دریافتی
تا اینجا متغیر سراسری uuid تنظیم شده، دارای یک مقدار ثابت است. برای تنظیم آن به مقدار Guid دریافتی از سرور، مجددا به برگهی Tests درخواست uuid مراجعه میکنیم و آنرا به نحو زیر تکمیل خواهیم کرد:
pm.response حاوی کل اطلاعات شیء response است و برای مثال بدنهی response دریافتی از سمت سرور httpbin، یک چنین شکلی را دارد:
{ "uuid": "4594e7ad-cae3-487b-bd42-fc49c312c0e9" }
let jsonResponse = pm.response.json(); pm.globals.set("uuid", jsonResponse.uuid);
{ "uuid": "83d437a8-bce6-438b-8693-068e5399182c" }
که به معنای دسترسی به مقدار متغیر uuid دریافتی از سمت سرور و تنظیم آن به عنوان یک متغیر سراسری است.
اکنون اگر مجددا به برگهی مجزای Post request مراجعه و آنرا ارسال کنیم، در خروجی بدنهی response دریافتی از سمت سرور:
"json": { "id": "83d437a8-bce6-438b-8693-068e5399182c", "name": "Vahid" },
تا اینجا تمام برگههای باز را ذخیره کنید:
در این تصویر، uuid پس از Post request قرار گرفته، چون ترتیب ذخیره سازی آنها به همین صورت بودهاست. اما نیاز است uuid را به پیش از درخواست post، منتقل کرد. برای اینکار میتوان از drag/drop آیتم آن کمک گرفت.
نوشتن یک آزمون ساده
هدف اصلی از برگهی Tests هر درخواست در Postman، نوشتن آزمونهای مختلف است. به همین جهت برای نوشتن یک آزمون ساده، به برگهی Post request که هم اکنون باز است، مراجعه کرده و سپس برگهی Tests آنرا به صورت زیر تنظیم میکنیم:
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
این آزمون، بررسی میکند که آیا status code بازگشتی از سرور 200 است یا خیر؟ برای اجرای آن، فقط کافی است بر روی دکمه Send این برگه کلیک کنید:
نتیجهی آنرا در برگهی جدید Test Results، در قسمت نمایش response دریافتی از سمت سرور، میتوان مشاهده کرد که بیانگر موفقیت آمیز بودن آزمایش انجام شدهاست.
اگر علاقمندید تا حالت شکست آنرا نیز مشاهده کنید، بجای عدد 200، عدد 404 را وارد کرده و مجددا درخواست را ارسال کنید.
اجرای ترتیبی آیتمهای یک مجموعه
تا اینجا اگر درخواستها را در مجموعهی httpbin ذخیره کرده و همچنین ترتیب آنها را نیز به نحوی که گفته شد، اصلاح کرده باشید، یک چنین شکلی را باید مشاهده کنید:
در اینجا برای اجرای ترتیبی این آیتمها و اجرای گردش کاری کوچکی که ایجاد کردهایم (درخواست post باید پس از درخواست uuid و بر اساس مقدار دریافتی آن از سرور اجرا شود)، میتوان از collection runner برنامهی Postman استفاده کرد:
با کلیک بر روی دکمهی Runner، در نوار ابزار برنامهی Postman، صفحهی Collection runner آن ظاهر میشود. در این صفحه ابتدا httpbin collection را انتخاب میکنیم که سبب نمایش محتویات و اجزای آن خواهد شد. سپس بدون ایجاد هیچگونه تغییری در تنظیمات این صفحه، بر روی دکمهی run httpbin کلیک میکنیم:
پس از اجرای خودکار مراحل این مجموعه، نتیجهی عملیات ظاهر میشود:
در اینجا هر مرحله، پس از مرحلهای دیگر اجرا شده و اگر آزمایشی نیز به همراه آنها بوده باشد نیز اجرا شدهاست. همچنین اگر بر روی نام هر کدام از مراحل کلیک کنیم، میتوان جزئیات آنها را نیز دقیقا بررسی کرد:
امکان اجرای یک چنین قابلیتی توسط برنامهی CLI ای به نام newman نیز به همراه Postman وجود دارد که جهت استفادهی در continuous integration servers میتواند بسیار مفید باشد. جزئیات آنرا در قسمتهای بعدی بررسی خواهیم کرد.