خداحافظ پستمن؟ آشنایی با برونو؛ ابزاری ساده برای تست API

اگر توسعهدهنده وب، موبایل یا مهندس تست باشید، احتمالاً بخش زیادی از زمان خود را در پستمن یا ابزارهای مشابه میگذرانید. این ابزارها سالها انتخاب اصلی بسیاری از تیمها برای تست API بودند.
اما در چند سال اخیر، با تغییر سیاستهای پستمن، وابستگی بیشتر به حساب کاربری و سرویس ابری، بسیاری از توسعهدهندگان به دنبال جایگزینهای سادهتر رفتند. یکی از ابزارهایی که در این مدت توجه زیادی را جلب کرده، برونو (Bruno) است.
در این مقاله با برونو آشنا میشویم و بررسی میکنیم چرا بسیاری از تیمها آن را بهعنوان جایگزین پستمن انتخاب کردهاند.
برونو چیست؟
برونو یک ابزار متنباز برای ارسال درخواستهای API و بررسی پاسخ آنهاست. با استفاده از آن میتوانید درخواستهای GET، POST، PUT، DELETE و سایر درخواستهای HTTP را ارسال کنید، پاسخها را بررسی کنید و برای آنها تست بنویسید.
تفاوت اصلی برونو با پستمن در نحوه نگهداری اطلاعات است. برونو همه درخواستها و تنظیمات را بهصورت فایل در کنار پروژه ذخیره میکند و نیازی به همگامسازی با سرویس ابری ندارد.
چرا بسیاری از توسعهدهندگان از برونو استفاده میکنند؟
ذخیره درخواستها داخل پروژه
در برونو هر درخواست بهصورت یک فایل متنی ذخیره میشود. بنابراین میتوانید آن را مانند سایر فایلهای پروژه در گیت نگهداری کنید.
این روش چند مزیت دارد:
- درخواستها همراه با کد پروژه نسخهبندی میشوند.
- تغییرات بهراحتی در گیت قابل مشاهده است.
- اعضای تیم بدون نیاز به سرویسهای جانبی به همان درخواستها دسترسی دارند.
بدون وابستگی به سرویس ابری
برای استفاده از برونو نیازی به ایجاد حساب کاربری نیست و اطلاعات پروژه روی سیستم خودتان باقی میماند.
این موضوع در پروژههای سازمانی یا محیطهایی که دسترسی به اینترنت محدود است، میتواند یک مزیت باشد.
سبک و سریع
برونو امکانات موردنیاز برای تست API را بدون اضافه کردن قابلیتهای غیرضروری ارائه میدهد. به همین دلیل اجرای برنامه سریع است و مصرف حافظه نیز نسبتاً کم است.
مهاجرت از پستمن
اگر قبلاً از پستمن یا اینسامنیا استفاده کرده باشید، میتوانید مجموعه درخواستها و محیطهای خود را به برونو منتقل کنید و معمولاً نیازی به ساخت دوباره آنها نیست.
مقایسه برونو و پستمن
| ویژگی | برونو | پستمن |
|---|---|---|
| محل ذخیره درخواستها | فایلهای پروژه | سرویس ابری |
| نیاز به حساب کاربری | خیر | در بسیاری از قابلیتها بله |
| سازگاری با گیت | مناسب | محدودتر |
| متنباز | بله | خیر |
| اجرای آفلاین | کامل | بخشی از قابلیتها |
شروع کار با برونو
ابتدا برنامه را از سایت رسمی دانلود و نصب کنید.
سپس:
- یک مجموعه جدید ایجاد کنید.
- پوشه پروژه را انتخاب کنید.
- اولین درخواست خود را بسازید.
- درخواست را ارسال و پاسخ را بررسی کنید.
برونو فایلهای مربوط به درخواستها را در همان پوشه پروژه ذخیره میکند و از همان ابتدا میتوانید آنها را در گیت قرار دهید.
نوشتن تست
برونو امکان اجرای کد جاوااسکریپت قبل یا بعد از ارسال درخواست را فراهم میکند. بهعنوان نمونه، برای بررسی کد وضعیت پاسخ میتوان از کد زیر استفاده کرد:
test("بررسی وضعیت پاسخ", function () {
expect(res.getStatus()).to.equal(200);
});
سازگاری با گیت؛ مهمترین تفاوت برونو
اگر بخواهیم فقط یک دلیل برای انتخاب برونو نام ببریم، احتمالاً همین سازگاری با گیت است.
در بسیاری از پروژهها، درخواستهای API هم مانند کد برنامه بخشی از پروژه هستند و بهتر است کنار همان کد نگهداری شوند. برونو دقیقاً با همین نگاه طراحی شده است.
در پستمن معمولاً یک مجموعه از درخواستها داخل یک فایل بزرگ ذخیره میشود. با بزرگتر شدن پروژه، این فایل نیز بزرگتر میشود و هر تغییری در یکی از درخواستها باعث تغییر همان فایل اصلی خواهد شد. در نتیجه هنگام بازبینی تغییرات یا ادغام شاخهها، ممکن است چند نفر همزمان روی یک فایل کار کرده باشند و تداخل ایجاد شود.
برونو مسیر متفاوتی را انتخاب کرده است. هر درخواست API در یک فایل مستقل ذخیره میشود و پوشهها نیز دقیقاً مطابق ساختار پروژه شکل میگیرند. برای مثال اگر در پروژه پوشهای به نام users داشته باشید، درخواستهای مربوط به کاربران نیز در همان پوشه قرار میگیرند و هر درخواست فایل مخصوص خود را خواهد داشت.
به همین دلیل:
- هر تغییر فقط همان فایل را تغییر میدهد.
- بازبینی تغییرات در گیت سادهتر است.
- احتمال تداخل هنگام ادغام شاخهها کمتر میشود.
- جابهجایی یا تغییر ساختار پوشهها مانند سایر فایلهای پروژه انجام میشود.
- درخواستهای API میتوانند همراه با کد مربوط به همان بخش نسخهبندی شوند.
در عمل، بسیاری از تیمها پوشه درخواستهای برونو را در کنار کد پروژه قرار میدهند و همانند سایر فایلهای پروژه آن را در گیت مدیریت میکنند.
ساختار فایلهای برونو
برونو اطلاعات هر درخواست را بهصورت فایل متنی ذخیره میکند. این فایلها هم برای انسان قابل خواندن هستند و هم بهراحتی در گیت قابل مقایسهاند.
برونو از چند قالب برای کار با APIها پشتیبانی میکند که مهمترین آنها قالب اختصاصی خود برونو و قالب OpenAPI است.
قالب اختصاصی برونو
قالب اصلی برونو از یک نگارش ساده و خوانا استفاده میکند که برای ویرایش دستی طراحی شده است. هر درخواست در یک فایل مستقل با پسوند .bru ذخیره میشود.
نمونه:
meta {
name: Get Users
type: http
}
get {
url: {{baseUrl}}/users
}
headers {
Authorization: Bearer {{token}}
}
ساختار این فایلها بهگونهای است که حتی بدون اجرای برونو نیز میتوان آنها را در یک ویرایشگر متن مشاهده، ویرایش و در گیت بازبینی کرد.
قالب OpenAPI
اگر پروژه شما از OpenAPI استفاده میکند، برونو میتواند مشخصات API را نیز از فایلهای OpenAPI وارد کند. این فایلها معمولاً با قالب YAML نوشته میشوند و برای مستندسازی و تبادل مشخصات API بین ابزارهای مختلف کاربرد دارند.
نمونهای از یک مسیر در OpenAPI:
openapi: 3.1.0
paths:
/users:
get:
summary: دریافت فهرست کاربران
responses:
"200":
description: موفق
در عمل، بسیاری از تیمها مستندات API را بهصورت OpenAPI نگهداری میکنند و برای توسعه و تست روزانه از فایلهای .bru استفاده میکنند. این ترکیب باعث میشود هم مستندات استاندارد API حفظ شوند و هم درخواستهای قابل اجرا بهصورت فایلهای مستقل و سازگار با گیت در کنار کد پروژه قرار بگیرند.
جمعبندی
اگر تنها به یک ابزار برای ارسال درخواستهای API، نوشتن تست و مدیریت درخواستها نیاز دارید، برونو گزینهای است که ارزش امتحان کردن دارد.
سادگی، ذخیرهسازی فایلها در کنار پروژه و سازگاری با گیت باعث شده بسیاری از توسعهدهندگان آن را بهجای پستمن انتخاب کنند؛ بهویژه در پروژههایی که نگهداری درخواستها در مخزن کد اهمیت دارد.
البته اگر از قابلیتهای تیمی، فضای ابری یا امکانات پیشرفته پستمن استفاده میکنید، ممکن است همچنان پستمن انتخاب مناسبتری باشد. اما برای بسیاری از پروژههای روزمره، برونو تمام امکانات موردنیاز را در اختیار شما قرار میدهد.