اهمیت تست و آزمون وب سرویس ها
در این مطلب قصد داریم در مورد اهمیت تست API توضیح دهیم.
وبسایتها و برنامههای مدرن برای گسترش و ایجاد Functionality غنی با بسیاری از سرویسهای Third-Party همکاری می کنند. همه این سرویسها شامل API نیستند. برای مثال: ابزارهای ردیابی تبدیل اغلب در سایت ها به عنوان تگ های جاوا اسکریپت بدون دخالت API جاسازی شده اند.
تمام سرویسهای Third-Party چه بر APIها تکیه داشته باشند چه نداشته باشند، باید به طور کامل تحت تست و نظارت قرار گیرند، زیرا تمام چیزی که برای کاهش سرعت و یا حتی سخت کردن کار تصور میشود، یک عامل کند و غیر قابل اطمینان است. عوامل متعددی برای کاهش API Performance وجود دارند، از جمله: Endpointهای API که خرابی(Down-Time) را تجربه میکنند؛ باگهای Integration که باعث بروز خطاها و وقفهها میشوند؛ API Authentication که بیش از حد معمول طول بکشد؛ API Serviceهایی که به اندازه کافی برای مدیریت درخواستهای ورودی و پاسخهای خروجی قوی نیستند؛ و تاخیر در فراخوانیهای API، که میتوانند گلوگاههای Performance را ایجاد کرده و یا بیفزایند.
از آنجایی که فرآیندهای وابسته به API اغلب از اپلیکیشنهای مشتری و تولید درآمد(و در کل Mission-Critical) پشتیبانی میکنند، نظارت و تست APIها یک امر ضروریست. موارد زیر را در نظر بگیرید:
- هنگامی که یک خریدار آنلاین یک سفارش در یک سایت تجارت الکترونیک ثبت میکند، درگاه پرداخت برای تأیید اطلاعات کارت اعتباری کاربر از APIها استفاده میکند. اگر آن API که گزینههای پرداخت در سایت را Integrate میکند دچار مشکل شود، نه تنها منجر به یک سبد خرید رها شده میگردد، بلکه نتایج نومید کنندهای که به دلیل تجربه منفی کاربر حاصل شده، روی سر شما هوار میشود.
- اگر یک سایت کسب و کاری بر یک ویجت جستجو که به صورت Third-Party استفاده میشود متکی باشد و API مربوط به اجرای این ویجت هم دچار مشکل شود، کاربران نمیتوانند محصول را پیدا کنند. این نیز میتواند موجب ناراحتی کاربر و تاثیر منفی بر کسب و کار شود.
- برای سایتهایی که به منظور اتومات کردن مدیریت اموال از API استفاده میکنند، یک مشکل در API Performance میتواند موجب تاخیر در اجرای سفارش شود که به تمام مراحل پردازش سفارش به طور آبشاری و به طبع آن بر درآمد سایت تأثیر میگذارد.
- تعداد فراخوانیهای API در دستگاه های IoT بالاتر است زیرا آنها بر به روز رسانی اطلاعات به صورت Real-Time تکیه میکنند، بنابراین حتی یک تاخیر ناچیز میتواند به سرعت مانع Performance مناسب شود.
سناریوهایی که در بالا روی آنها بحث کردیم روشن میسازد که هنگام ایجاد استراتژی APM-Asset Performance Management(مدیریت Performance دارایی) نمیتوانید نظارت بر API را نادیده بگیرید و این برای هر نوع برنامهای که از API ها استفاده میکند صادق است.
اگر شما یک ارائه دهنده API هستید، استراتژی مانیتورینگ API شما باید موارد زیر را الزاما در نظر داشته باشد:
- Availability یا در دسترس بودن – APIها باید بالا باشند و در هر زمان از روز اجرا شوند. مسائل مربوط به دسترسی میتواند Performance برنامه را کاهش داده و کاربر نهایی را تحت تاثیر قرار دهد.
- Security یا امنیت – نظارت بر API میتواند برای تست Reliability تراکنشهای API مورد استفاده قرار گیرد و بایستی API Authentication را مدیریت کند تا به این ترتیب در راستای حصول اطمبنان از تبادل امن دادهها و اینکه این تبادلات توسط رباتهای دادهکاوی درخواست نشده است به شما کمک کنند.
- Benchmarking – دادههای جمعآوری شده توسط ابزار نظارت باید برای تجزیه و تحلیل، جامع و آسان باشند. این موضوع باید به Benchmark کردن بهرهوری API شما در مقایسه با رقبا کمک کند. Benchmarking یک چشمانداز بهتر از API Performance را ارائه میدهد، بنابراین میتوانید اطمینان حاصل کنید که این API با دیگر ارائه دهندگان API قابل قیاس است.
- SLA – ابزار مانیتورینگ به شما هشدار میدهد که یک تخریب Performance یا قطع عملیات حادث شده است یا خیر. نظارت فعلانه به شما کمک میکند تا مشکلات را سریعتر شناسایی نموده و حل کنید و بدین ترتیب از نقض SLA جلوگیری نمایید.
اگر شما برنامههایی اجرا میکنید که چندین API را استفاده میکنند، نظارت بر هر APIای که شما استفاده میکنید به اندازه نظارت بر اپلیکیشن مهم است. هر API Integrationای باید به طور مداوم برای هرگلوگاه Performance تست شود.