برنامه نویسی

اعتبار سنجی طرحواره API با سرو

آیا تا به حال به روزرسانی API را فشار داده اید تا دریابید که کل مجموعه تست شما شکسته است زیرا فرم پاسخ تغییر کرده است؟ صورت همه چیز را می گوید ، هاها ..

از آنجا که قبلاً با این مسئله روبرو شده اید ، می دانید که حفظ یک قرارداد سخت بین جلوی و پشتی ، چقدر مهم است. یکی از راه های دستیابی به این هدف از طریق اعتبار سنجی طرحواره است. این تضمین می کند که هر پاسخ با یک ساختار از پیش تعریف شده مطابقت دارد و قبل از افزایش کابوس های تولید ، مسائل احتمالی را جلب می کند.

امروز ، من شما را از طریق استفاده از Cypress-AJV-Schema-volidator برای اضافه کردن اعتبار سنجی JSON Schema به مجموعه تست Cypress خود پیاده می کنم. ما در مورد چگونگی ادغام آن ، مزایایی که آن را به گردش کار توسعه شما می آورد ، و یک ترفند مرتب برای واکشی طرحواره ها به صورت پویا از یک صفحه swagger بحث خواهیم کرد.

افزونه Cypress-AJV-Schema-Involidator از کتابخانه محبوب AJV (یکی دیگر از اعتبار سنج های JSON Schema) برای اعتبارسنجی پاسخ های JSON استفاده می کند. این Cypress را با یک دستور سفارشی گسترش می دهد – Cy.ValidatesChema () ، و اعتبار سنجی طرحواره را به سادگی فراخوانی یک تماس با عملکرد واحد تبدیل می کند.

نصب

برای شروع ، افزونه را به عنوان وابستگی به توسعه نصب کنید:

npm install cypress-ajv-schema-validator - save-dev
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سپس واردات زیر را به پرونده پشتیبانی Cypress (Cypress/Support/index.js یا Cypress/Support/Commands.js) اضافه کنید:

import 'cypress-ajv-schema-validator/commands';
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

tadaaa ..! همین است! Cypress اکنون فرمان Cy.ValidatesChema را تشخیص می دهد و به شما امکان می دهد پاسخ های API را در یک ثانیه تقسیم کنید! چقدر خونسرد است؟ ❤


گردش کار معمولی …

  1. طرح JSON را تعریف یا واکشی کنید: می توانید طرح های خود را به صورت محلی ذخیره کنید.

  2. یک تماس API برقرار کنید: از Cy.Request () استفاده کنید تا با نقطه پایانی خود تماس بگیرید.

  3. پاسخ را تأیید کنید: بدن پاسخ و طرح خود را به cy.validateschema منتقل کنید.

اگر پاسخ با طرح مطابقت نداشته باشد ، سرو یک خطای توصیفی را نشان می دهد که دقیقاً در کجا عدم تطابق رخ داده است.

مورد آزمایش با اعتبار سنجی طرحواره

مورد آزمایش ناموفق با اعتبار سنجی طرحواره


یکی از رویکردهای مورد علاقه من بازیابی طرح از یک سند swagger (یا OpenAPI) در زمان اجرا است. به این ترتیب ، لازم نیست نگران به روزرسانی دستی پرونده های طرحواره محلی باشید. آنها را به صورت پویا واکشی کنید! در پروژه های در مقیاس بزرگ ، به نظر من راحت است که طرحواره ها را از تعریف swagger یا OpenAPI بکشید. این باعث می شود شما باشید همیشه در برابر به روزترین قرارداد معتبر است.

در اینجا چگونه می توانید آن را انجام دهید:

کد سرو با طرحواره پویا

برای نکته: اگر Doc Swagger شما متفاوت است ، مسیر را برای هدف قرار دادن طرح صحیح تنظیم کنید. حتماً UNTCHEMANAME و URL های نقطه پایانی را با مقادیر واقعی از پروژه خود جایگزین کنید.


  1. تشخیص زودرس قرارداد: هنگامی که یک پاسخ از ساختار مورد انتظار خود منحرف می شود ، آزمایشات شما بلافاصله شکست می خورد. این حلقه بازخورد سریع مانع از شگفتی های نامطبوع در اواخر چرخه توسعه می شود.

  2. همکاری بهتر: با یک طرح خوب تعریف شده ، تیم های پشتی و مقدماتی با یک قرارداد روشن به اشتراک می گذارند. این تراز باعث کاهش حدس و گمان ، سوء استفاده و اصطکاک بین تیم ها می شود.

  3. اشکال زدایی سریعتر: AJV پیام های خطای مفصلی را ارائه می دهد که محل دقیق عدم تطابق را نشان می دهد. شما دقیقاً می دانید کدام زمینه باعث شکست و چرا می شود.

  4. کاهش آزمایش دستی: اعتبار سنجی خودکار طرح می تواند در بررسی های دستی تکراری کاهش یابد. این زمان برای آزمایش های اکتشافی یا کارهای دیگری که نیاز به بینش انسان دارند ، آزاد می شود.

  5. مقیاس پذیری: با رشد پروژه شما ، اطمینان از سازگاری در پاسخ های API به طور فزاینده ای پیچیده می شود. اعتبار سنجی طرحواره روشی مقیاس پذیر برای کنترل همه نقاط پایانی ارائه می دهد.

در یک هرم تست معمولی ، تست های پایان به انتها (E2E) کمتر اما جامع تر هستند. اعتبار سنجی طرحواره در این تست های سطح بالاتر تضمین می کند که از نظر مصرف کننده ، ساختار پاسخ API همیشه صحیح است. با ادغام بررسی های طرحواره ای در آزمایشات موجود در Cypress E2E ، شما به طور موثری شکاف بین اعتبارسنجی های سطح واحد و سناریوهای دنیای واقعی را به وجود می آورید.


در دنیایی که خدمات به سرعت در حال تحول هستند ، Cypress-AJV-Schema-Invalidator یک شبکه ایمنی قوی را فراهم می کند. با ادغام اعتبار سنجی طرحواره در تست های سرو ، می توانید تغییرات غیر منتظره ای را زودتر بدست آورید ، قراردادهای محکم تری بین جلوی و پشتی خود حفظ کنید و گردش کار تست کلی خود را ساده کنید.

اگر تازه وارد اعتبار سنجی طرحواره هستید یا به دنبال محکم کردن استراتژی تست موجود خود هستید ، به این افزونه چرخش دهید. آن را با طرح های پویا از اسناد swagger خود جفت کنید ، و شما به خوبی در راه رسیدن به یک آزمایش آزمایشی API ضد انعطاف پذیر تر و ضد آینده قرار خواهید گرفت.

احساس راحتی کنید که تجربیات خود را به اشتراک بگذارید یا در نظرات زیر سؤال کنید. من دوست دارم بشنوم که چگونه اعتبار سنجی طرحواره در استراتژی آزمایش خود قرار می گیرد و با چه چالش هایی در طول مسیر روبرو شده اید.

آزمایش API مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا