با چه ابزاری API تست می کنید؟ postman یکی از معتبر ترین ابزار ها برای این کاره. اگر دوست دارید کار با اون رو یاد بگیرید در این مطلب برای آموزش کامل Postman همراه ما باشید.
آنچه که در این مقاله خواهید خواند:
آموزش کامل Postman
پستمن (Postman) یکی از محبوبترین ابزارها در آزمون APIها است. این ابزار در سال 2012 بهعنوان یک پروژه جانبی توسط Abhinav Asthana برای ساده کردن روند توسعه و تست API ها ساخته شد. فراخوانیهای API ها به برنامههای نرمافزاری امکان برقراری ارتباط با یکدیگر را میدهد.
در پست آموزشی زیر موارد زیر را خواهید آموخت:
• پستمن چیست؟
• چرا از پستمن استفاده میکنیم؟
• چگونه از پستمن استفاده کنیم؟
• کار با درخواستهای GET
• کار با درخواستهای POST
• نحوه پارامتری کردن درخواستها
• چگونه آزمونهای پستمن ایجاد کنیم؟
• چگونه کالکشن ایجاد کنیم؟
• چگونه کالکشنها را به کمک Collection Runner اجرا کنیم؟
• چگونه کالکشنها را به کمک Newman اجرا کنیم؟
چرا از پستمن استفاده میکنیم؟
با بیش از 4 میلیون کاربر، پستمن به دلایل زیر به یکی از ابزارهای منتخب توسعه دهندگان وب تبدیل شده است:
- قابلیت دسترسی: برای استفاده از پستمن کافی است به اکانت خود وارد شوید. با این کار بهراحتی به فایلها در هر زمان و هر مکان دسترسی خواهید داشت. البته تا زمانی که برنامه پستمن روی کامپیوتر شما نصب باشد.
- استفاده از کالکشنها: پستمن به کاربران امکان ایجاد کالکشنی از فراخوانیهای API را میدهد. هر کالکشن میتواند زیرپوشه و درخواستهای چندگانه ایجاد کند. این موضوع به سازماندهی آزمونهای مرتبط کمک میکند.
- تعامل: کالکشنها و محیطها میتوانند به یکدیگر اضافه و یا از هم خروجی گرفته شوند. این موضوع در به اشتراکگذاری فایلها مفید خواهد بود. همچنین برای به اشتراک گذاشتن کالکشنها میتوان از لینک مستقیم هم استفاده کرد.
- ایجاد کردن محیط: محیطهای چندگانه باعث تکرار کمتر آزمونها میشود. زیرا یک آزمون میتواند از کالکشنی یکسان در محیطهای متفاوت استفاده کند. اینجاست که پارامتری کردن اتفاق میافتد. دراینباره در بخشهای بعدی صحبت خواهیم کرد.
- ایجاد آزمون: میتوان نقاط بازرسی (checkpoint) متفاوتی برای آزمونها تعیین کرد. مثلاً یک نقطه بازرسی برای تأیید موفقیت پاسخ HTTP ایجاد و آن را به فراخوانیهای API اضافه کنیم. این کار به ما کمک میکند نسبت به پوششدهی آزمونها مطمئنتر باشیم.
- آزمونهای خودکار: با استفاده از Collection Runner یا Newman آزمونها میتوانند به تعداد دلخواه اجرا شوند. این کار باعث صرفهجویی در زمان انجام آزمونهای تکراری میشود.
- دیباگ کردن: کنسول پستمن در بررسی دادههای بازیابی شده کمک میکند. همچنین دیباگ کردن را راحتتر میکند.
- ادغام مکرر: با قابلیت ادغام مکرر پستمن، عملیات توسعه، حفظ و نگهداری میشود.
آموزش کامل نصب postman
به دلیل متنباز بودن پستمن دانلود آن بسیار ساده است:
گام اول: به آدرس https://www.getpostman.com/downloads/ بروید و از بین مک، ویندوز و لینوکس، سیستمعامل دلخواهتان را انتخاب کنید. روی دانلود کلیک کنید.
گام دوم: اکنون باید در مرورگر یا برنامه مدیریت دانلودتان، آغاز عملیات دانلود را مشاهده کنید. پس از اتمام دانلود روی دکمه اجرا (Run) کلیک کنید.
گام سوم: فرآیند نصب آغاز میشود.
گام چهارم: در پنجره بعدی یک حساب کاربری پستمن بسازید.
تذکر: دو راه برای ورود به پستمن وجود دارد. میتوانید خودتان اکانت بسازید و یا از اکانت گوگل برای ورود به پستمن استفاده کنید. اگرچه پستمن به شما اجازه استفاده از ابزارها را بدون وارد شدن به حساب کاربری میدهد، با ساختن اکانت مطمئن خواهید بود که کالکشنهای شما ذخیره شده و بعداً هم میتوانید به آنها دسترسی داشته باشید.
گام پنجم: ابزارهای فضای کاری خود را انتخاب کنید و سپس روی Save My Preferences کلیک کنید.
گام ششم: صفحه آغاز را خواهید دید.
آموزش استفاده از postman
در تصویر زیر محیط کاری پستمن را میبینید. با هم به بررسی قابلیتهای مختلف این ابزار میپردازیم.
- New: از اینجا میتوانید درخواست، کالکشن یا محیط جدید ایجاد کنید.
- Import: از این گزینه برای اضافهکردن یک کالکشن و یا محیط استفاده میشود. گزینههایی مثل اضافهکردن از فایل، فولدر و لینک وجود دارد.
- Runner: تستهای خودکار میتوانند با Collection Runner اجرا شوند. در درسهای بعدی به این موضوع خواهیم پرداخت.
- Open New: با کلیک بر این دکمه، یک تب، پنجره پستمن یا پنجره Runner باز خواهد شد.
- My Workspm.response.to.have.status(200)pace: میتوانید یک فضای کاری تکنفره و یا تیمی ایجاد کنید.
- Invite: با دعوت از اعضای تیم در یک فضای کاری همکاری کنید.
- History: درخواستهایی که قبلاً فرستادهاید، در این قسمت نمایش داده میشوند. به کمک این قسمت، بهراحتی میتوانید اقدامات انجام شده را دنبال کنید.
- Collections : آزمونهای مرتبط را با ایجاد کالکشن سازماندهی کنید. هر کالکشن دارای زیرپوشه (subfolder) و درخواستهای گوناگون میباشد. همانند کالکشنها، درخواستها و یا پوشهها را نیز میتوان تکثیر کرد.
- Request tab: این گزینه، عنوان درخواستی را که در حال کار کردن روی آن هستید نمایش میدهد. برای درخواستهایی که نامگذاری نشدهاند بهصورت پیشفرض عبارت “Untitled Request” نمایش داده میشود.
- HTTP Request: با کلیک بر روی این گزینه، یک منوی کشویی حاوی درخواستهای مختلف مثل GET, POST, COPY, DELETE و … باز میشود. در آزمونها، بیشتر از درخواستهای GET و POST استفاده میشود.
- Request URL: بهعنوان نقطه پایانی (endpoint) هم شناخته میشود. به کمک این گزینه، میتوان مقصد ارتباطات API را شناسایی کرد.
- Save: برای جلوگیری ازبینرفتن تغییرات جدید و یا بازنویسی آنها باید از این گزینه برای ذخیره تغییرات استفاده کنیم.
- Params: اینجا همان جایی است که پارامترهای مورد نیاز یک درخواست مثل مقادیر کلیدی را وارد میکنید.
- Authorization: برای دسترسی به APIها لازم است احراز هویت انجام شود. این احراز هویت احتمالاً به شکل یک فرم با فیلدهای نام کاربری، رمز و یک رشته حروف برای جلوگیری از ورود رباتهاست.
- Headers: میتوانید هدرهایی مثل نوع داده JSON بسته به نیازهای خود وارد کنید.
- Body: در اینجا میتوانید جزئیات یک درخواست را بهدلخواه تغییر دهید. از این امکان معمولاً در درخواستهای POST استفاده میشود.
- Pre-request Script: اسکریپتهایی هستند که قبل از درخواست اجرا میشوند. معمولاً این نوع اسکریپتها برای تنظیم محیط و اطمینان از اجرای آزمونها در محیط مناسب استفاده میشوند.
- Tests: اسکریپتهایی هستند که در طول درخواست اجرا میشوند. بسیار مهم است که تستهایی داشته باشیم که نقاطی برای بررسی وضعیت پاسخ، دریافت دادههای مطلوب و … در خود داشته باشند.
کار با درخواستهای GET
درخواستهای GET برای بازیابی اطلاعات از URL دریافتی به کار میروند. با اجرای این درخواست هیچ تغییری در نقطه پایانی نخواهیم داشت.
برای مثال از این URL برای آموزش استفاده میکنیم.
https://jsonplaceholder.typicode.com/users
در محیط کار:
- درخواست HTTP را روی GET قرار دهید.
- در فیلد URL درخواست، لینک را وارد کنید.
- روی send کلیک کنید.
- پیام 200ok را مشاهده میکنید.
- اگر آزمون شما بهدرستی انجام شده باشد، نتایج 10 کاربر را در قسمت Body خواهید دید.
نکته: در مواردی ممکن است آزمون ناموفق باشد. این موضوع ممکن است به دلیل وارد کردن URL نامعتبر و یا نیاز به احراز هویت باشد.
کار با درخواستهای POST
یکی از تفاوتهای درخواست POST با درخواست GET این است که بهوسیله درخواست POST میتوان با اضافهکردن داده به نقطه پایانی، دادهها را دستکاری کرد. با استفاده از دادههای قسمت قبل، این بار میخواهیم ببینیم که چگونه میتوانیم کاربر دلخواهمان را به درخواست اضافه کنیم.
گام اول: روی علامت + کلیک کنید تا تب جدید باز شود.
گام دوم: در تب جدید:
- حالت درخواست HTTP را به POST تغییر دهید.
- همان لینک قبلی را در قسمت URL درخواست وارد کنید.
- به تب Body تغییر وضعیت دهید.
گام سوم: در Body:
- روی raw کلیک کنید.
- JSON را انتخاب کنید.
گام چهارم: همانند زیر، نتیجه برگردانده شده برای یک کاربر را از قسمت قبل کپی و پیست کنید. دقت کنید که کد بهدرستی کپی پیست شود و براکتها و پرانتزها بهدرستی باز و بسته شده باشند. id را به 11 و name را به اسم دلخواه تغییر دهید. میتوانید سایر جزئیات مانند آدرس را نیز تغییر دهید.
[ { "id": 11, "name": "Krishna Rungta", "username": "Bret", "email": "Sincere@april.biz ", "address": { "street": "Kulas Light", "suite": "Apt. 556", "city": "Gwenborough", "zipcode": "92998-3874", "geo": { "lat": "-37.3159", "lng": "81.1496" } }, "phone": "1-770-736-8031 x56442", "website": "hildegard.org", "company": { "name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets" } } ]
نکته: درخواست POST باید فرمت صحیحی داشته باشد تا از ایجاد داده مطلوب مطمئن باشیم. بهعنوان تمرین میتوانید ابتدا با درخواست GET فرمت JSON درخواست را چک کنید. میتوانید از ابزارها موجود نیز استفاده کنید.
گام پنجم: سپس
- روی send کلیک کنید.
- حالت status باید به 201 Created تغییر پیدا کند.
- دادههای پست شده میبایست در قسمت Body نمایش داده شود.
آموزش کامل postman : پارامتربندی درخواست ها
پارامتری کردن دادهها یکی از پرکاربردترین قابلیتهای آن است. به جای ایجاد یک درخواست واحد با دادههای متفاوت، میتوان از متغیرها و پارامترها استفاده کرد. این دادهها میتواند از یک دیتا فایل و یا یک متغیر محیطی باشد. پارامتری کردن به جلوگیری از تکرار آزمونهای یکسان، جلوگیری میکند و آزمونهای رشتهای را بهصورت خودکار اجرا میکند.
پارامترها درون قلابهای براکتی ایجاد میشوند: {{parameter}}بیایید به نمونهای از استفاده از پارامترها در درخواست قبلی خود نگاهی بیندازیم:
حالا یک درخواست GET با استفاده از پارامترها ایجاد میکنیم.
گام اول:
- در خواست HTTP را به حالت GET قرار دهید.
- این لینک را وارد کنید: https://jsonplaceholder.typicode.com/users اولین قسمت URL را با پارامتری مثل {{url}} تعویض کنید. URL درخواستی به این شکل خواهد بود: {{url}}/users
- روی send کلیک کنید.
هیچ پاسخی در کار نخواهد بود، چون منبعی برای پارامترمان مشخص نکردهایم.
گام دوم: برای استفاده از پارامترهایی که برای تنظیم محیط نیاز داریم:
- روی آیکون چشم کلیک کنید.
- روی edit کلیک کنید تا متغیری سراسری تنظیم کنیم. این متغیر در همه کالکشنها میتواند مورد استفاده قرار بگیرد.
گام سوم: در ستون variable
- URL را در ستون name قرار دهید.
- روی save کلیک کنید.
گام چهارم: درصورتیکه صفحه زیر را میبینید، آن را ببندید.
گام پنجم: به درخواست GET بازگردید و سپس روی send کلیک کنید. هماکنون باید نتایج درخواستتان موجود باشد.
نکته: همیشه اطمینان حاصل کنید که پارامترهایتان منبعی مثل یک متغیر محیطی یا دیتا فایل دارند تا از بروز خطا جلوگیری شود.
چگونه آزمون پستمن بسازیم؟
آزمونهای پستمن، کدهای جاوا اسکریپتی هستند که به درخواستها اضافه میشوند و به شما کمک میکنند وضعیت نتایج درخواست (چه موفقیتآمیز باشد و چه شکستخورده) بسنجید.
در این قسمت از آموزش کامل postman بیایید یک آزمون ساده برای در خواست پارامتری شده تمرین قبل بسازیم.
گام اول: به درخواست GET از تمرین قبل بروید.
- به تب Tests بروید. در سمت راست بخش Snippets را مشاهده میکنید.
- روی «Status code: Code is 200» کلیک کنید.
گام دوم: روی send کلیک کنید. حال نتایج میبایست نمایش داده شوند.
گام سوم: به تب test برگردید. میخواهیم یک آزمون دیگر هم اضافه کنیم. این بار نتایج مورد انتظارمان را با نتایج واقعی مقایسه خواهیم کرد.
از بخش snippets روی «Response body:JSON value check» کلیک کنید. میخواهیم بررسی کنیم که آیا کاربر Leanne Graham دارای id با شماره 11 است؟
گام چهارم:
- از کدها قسمت «Your Test Name» را با متن «Check if user with id1 is Leanne Graham» تعویض کنید تا اسم آزمون دقیقاً مناسب با کاری باشد که میخواهیم انجام دهیم.
- jsonData.value را به jsonData[0].name تغییر دهید. برای دریافت مسیر، قسمت Body در نتایج درخواستGET را بررسی کنید. چون آیدی Leanne Graham برابر با 1 است و نتایج از 0 شروع میشوند، پس مقدار دریافتی jsonData را 0 قرار میدهیم. اگر میخواهید دومین نتیجه را دریافت کنید، از jsonData[1] استفاده کنید و همینطور ادامه دهید تا هر نتیجهای را که میخواهید به دست آورید.
- در ورودی eql رشته “Leanne Graham” را قرار دهید.
pm.test("Check if user with id1 is Leanne Graham", function () { var jsonData = pm.response.json(); pm.expect(jsonData[0].name).to.eql("Leanne Graham"); });
گام پنجم: روی send کلیک کنید. هماکنون باید 2 آزمون انجام شده را مشاهده کنید.
نکته: با پستمن میتوانید آزمونهای متفاوتی ایجاد و اجرا کنید. در بین ابزارها کمی جستجو کنید تا بفهمید کدام آزمون بیشتر با نیازهای شما در تناسب است.
چگونه کالکشن بسازیم؟
کالکشنها، نقش مهمی در سازماندهی آزمونهای دنبالهدار دارند. کالکشنها میتوانند به برنامه اضافه و یا از آن خارج شود. این کار باعث سهولت به اشتراکگذاری کالکشنها در بین اعضای تیم میشود. در این آموزش، خواهیم دید چگونه یک کالکشن را ایجاد و آن را اجرا کنیم؟
با ایجاد کالکشن شروع میکنیم:
گام اول: روی دکمه new در گوشه بالا و چپ صفحه کلیک کنید.
گام دوم: collection را انتخاب کنید. پنجره ساختن کالکشن جدید نمایش داده میشود.
گام سوم: نام و توضیحات کالکشن مورد نظر خود را وارد کنید سپس روی create کلیک کنید. یک کالکشن جدید ایجاد میشود.
گام چهارم: به درخواست GET قبل برگردید و روی save کلیک کنید.
گام پنجم:
- Postman Test Collection را انتخاب کنید.
- روی Save to Postman Test Collection کلیک کنید.
گام ششم: هماکنون کالکشن آزمون پستمن دارای یک درخواست میباشد.
گام هفتم: گامهای 4 و 5 درخواست POST که قبلاً در مورد آن توضیح دادیم را تکرار کنید.
چگونه به کمک collection Runner کالکشنها را اجرا کنیم؟
در این قمست از آموزش کامل postman دو راه برای اجرای کالکشنها معرفی می کنیم: Collection Runner و Newman. میخواهیم با استفاده از collection runner یک کالکشن را اجرا کنیم.
گام اول: روی دکمه runner کلیک کنید. این دکمه بالا صفحه و کنار دکمه Import قرار دارد.
گام دوم: همانند زیر Collection Runner به نمایش درمیآید. در تصویر زیر، توضیحات هر قسمت را مشاهده میکنید.
گام سوم: کالکشن آزمونهای خود را با انجام مراحل زیر اجرا کنید:
کالکشن آزمون پستمن را انتخاب کنید و iterations را روی 3 بگذارید.
Delay را روی 2500 میلیثانیه قرار دهید.
روی دکمه Run Postman Test… کلیک کنید.
گام چهارم: بعد از کلیک بر روی دکمه run صفحه Run Results نمایش داده میشود. بسته به زمانی که در فیلد delay وارد کردهاید، پس از مدتی اجرای آزمونها را خواهید دید.
- پس از پایان اجرای آزمون، نتیجه آزمون (قبول شدن یا رد شدن) را در هر بار تکرار خواهید دید.
- در تصویر زیر وضعیت Pass (قبول شدن) را برای درخواست GET میبینید.
- ازآنجاییکه برای درخواست POST هیچ آزمونی انجام ندادهایم، پیامی مبنی بر اینکه برای این درخواست هیچ آزمونی وجود ندارد میبینیم.
احتمالاً تا الآن متوجه اهمیت وجود آزمون برای هر درخواست شدهاید. به کمک آزمونهاست که متوجه میشوید آیا درخواست شما با موفقیت انجام شده و دادهها ایجاد و یا بازیابی شدهاند یا خیر.
چگونه کالکشنها را با استفاده از newman اجرا کنیم؟
در این قسمت از آموزش کامل postman راه های دیگر اجرای کالکشن ها معرفی می شوند. یکی از این روش ها، استفاده از newman است. بهطورکلی، نیومن و کالکشن رانر در موارد زیر با هم تفاوت دارند:
- نیومن یک add-on برای پستمن است؛ بنابراین لازم است آن را بهصورت جداگانه از اَپ مخصوص به خود دانلود کنید.
- نیومن از خط فرمان استفاده میکند، درحالیکه کالکشن رانر محیط گرافیکی دارد.
- از نیومن میتوان برای ادغام مکرر استفاده کرد.
برای نصب نیومن و استفاده از آن برای اجرای کالکشن از گامهای زیر پیروی کنید:
گام اول: با استفاده از این لینک، node.js را نصب کنید: http://nodejs.org/download/
گام دوم: خط فرمان را باز کنید و خط زیر را وارد کنید:
npm install -g newman
با اجرای این خط فرمان، نیومن روی سیستم شما نصب خواهد شد.
گام سوم: پس از نصب نیومن، به محیط پستمن برمیگردیم. در قسمت کالکشنها روی سهنقطه کلیک کنید تا گزینهها به نمایش در آیند. سپس Export را انتخاب کنید.
گام چهارم: روی گزینه Export Collection as Collection v2.1 (Recommended) کلیک کرده و سپس مجدداً Export را انتخاب کنید.
گام پنجم: مسیر دلخواهتان را انتخاب و سپس روی save کلیک کنید. توصیه میکنیم یک فولدر را برای آزمونهای پستمن در نظر بگیرید. هماکنون میبایست یک کالکشن به مسیر انتخابی شما فرستاده شود.
گام ششم: حالا باید از محیطمان خروجی بگیریم. روی آیکون چشم کنار منوی Global قرار دارد، کلیک کنید. محل مورد نظر خود را انتخاب کنید و روی save کلیک کنید. بهتر است که محیط با کالکشن در یک محل ذخیره شوند.
گام هفتم: به خط فرمان برگردید و دایرکتوری را بهجایی که کالکشنها و محیطتان را ذخیره کردهاید، تغییر دهید.
cd C:\Users\Asus\Desktop\Postman Tutorial
گام هشتم: کالکشن خود را با استفاده از این خط فرمان اجرا کنید:
newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json
نتایج دریافتی از اجرای کالکشن باید همانند زیر نمایش داده شود.
برای راهنمایی بیشتر، چند کد ساده از نیومن را مرور میکنیم:
1. Run a collection only: از این مورد در زمانهایی استفاده میکنیم که از متغیر های محلی(enviroment variables) یا فایل دیتا استفاده نشده باشد.
newman run <collection name>
2. Run a collection and environment: نشانه -e به environment اشاره میکند.
newman run <collection name> -e <environment name>
3. یک کالکشن بدون تکرار را اجرا میکند.
newman run <collection name> -n <no.of iterations>
4. Run with data file.
newman run <collection name> --data <file name> -n <no.of iterations> -e <environment name>
5. Set delay time: گاهی اوقات ممکن است اجرای یک آزمون با مشکلاتی روبهرو شود و سایر آزمونها قبل از پایان کار آزمون قبلی، شروع به کار کنند. در چنین موقعیتی است که تأخیرها اهمیت مییابند.
newman run <collection name> -d <delay time>
خلاصه
بد نیست که در پایان این آموزش استفاده از postman توضیحاتی که کامل داده شد رو به صورت خلاصه مرور کنیم:
• پستمن یکی از محبوبترین ابزارها برای آزمایش کارایی APIها است.
• ویژگیهای کلیدی پستمن عبارتاند از: قابلیت دسترسی، استفاده از کالکشنها، استفاده تیمی، ادغام مداوم و …
• بهتر است در پستمن اکانت بسازید تا بهصورت آنلاین به کالکشنهایتان دسترسی داشته باشید.
• در پستمن میتوانید درخواستهایتان را پارامتری کنید.
• میتوانید آزمونهایی طراحی کنید تا درست کار کردن درخواستهایتان را بسنجید.
• کالکشنها به کمک newman و یا Collection Runner اجرا میشوند.
توی آموزش کامل postman موفق بودیم؟ اگه سوال یا نظری دارید توی کامنتا به ما بگید.
پاسخها
با سلام و تشکر از توضیحات عالی شما..
برای تست اتومات، ما میخوایم که یه پارامتر رو از جواب یک سرویس ، به عنوان پارامتر به سرویس دیگه بدیم. چه جوری میشه؟
درود برشما ،
بله آموزشتون بسیار مفید و اموزنده بود.
سلام خیلی ممنون از اموزش کامل ابزار postmain
من میخواهم این ابزار را نصب کنم و دچار مشکل شده ام.ابزار را دانلود کرده ام اجرا میکنم برنامه باز نمیشود