مقالات

شما تست های قوی E2E را برای KubeStellar ساختید: یک سفر 3 ماهه


این را تصور کنید: یک برج کنترل که ده ها فرودگاه را به طور همزمان با دقت بی عیب و نقص مدیریت می کند. چشمگیر به نظر می رسد، درست است؟ این دقیقاً همان کاری است که KubeStellar برای خوشه‌های Kubernetes انجام می‌دهد و مدیریت پیچیده چندین خوشه را آسان می‌کند.

من سه ماه گذشته را به عنوان کارآموز IFOS برای ساخت چارچوب تست E2E گذراندم رابط کاربری KubeStellar.
هشدار اسپویلر: سخت‌تر از آنچه انتظار داشتم، سرگرم‌کننده‌تر از آنچه تصور می‌کردم بود، و بیش از هر درسی به من آموخت.

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

یک مقدمه سریع

سلام من آرپیت سریواستاوا هستم که در DSCE بنگالورو در حال تحصیل علوم اطلاعات هستم. من این روزها عمیقاً در فناوری ابر و هوش مصنوعی Agentic هستم. من همچنین برنامه نویسی رقابتی انجام می دهم و در این راه برنده چندین هکاتون ملی شده ام. من عمدتا با Go و TypeScript کار می کنم، با ابزار Kubernetes و DevOps می سازم.

من در پروژه‌های CNCF مانند KubeStellar و Meshery مشارکت داشته‌ام، برخی از سیستم‌های تشخیص رانش را ساخته‌ام، و صادقانه بگویم از اینکه سیستم‌های باطن پیچیده با اطمینان کار کنند، لذت می‌برم. این چیزی بود که من را به اینجا رساند.

من را در لینکدین یا گیت هاب پیدا کنید.

KubeStellar یک پروژه CNCF Sandbox است که بر مدیریت پیکربندی چندین خوشه متمرکز شده است. معامله به این صورت است: اگر 50 خوشه Kubernetes را اجرا می کنید (و به من اعتماد کنید، برخی از افراد چنین هستند)، نمی خواهید برای استقرار برنامه خود به هر یک از آنها SSH کنید.

KubeStellar به شما امکان می دهد یک بار حجم کاری خود را تعریف کنید و به طور خودکار توزیع را در تمام خوشه های مناسب مدیریت می کند. خیلی صاف، درست است؟

مشکل واقعی

رابط کاربری KubeStellar اساساً کابین خلبان برای کل این عملیات است. این روابط پیچیده بین خوشه ها، بار کاری و سیاست های الزام آور را در زمان واقعی به تصویر می کشد. اما نکته اینجاست، یک رابط کاربری که با داده‌های خوشه‌ای زنده کار می‌کند، بسیار دشوار است که به درستی آزمایش شود.

چگونه مطمئن شویم که هیچ چیز در هنگام برخورد با:

  • WebSockets به‌روزرسانی‌های وضعیت بلادرنگ را پخش می‌کند
  • فرم های پیچیده برای ایجاد سیاست های الزام آور
  • بارگذاری پویا هزاران منبع بالقوه

تست دستی؟ مقیاس نمی شود. ما به اتوماسیونی نیاز داشتیم که بتواند خطاها را حتی قبل از اینکه کاربران ببینند، تشخیص دهد.

چرا این سخت بود؟

رابط کاربری KubeStellar وب سایت ثابت معمولی شما نیست. ما در مورد:

  • اتصالات WebSocket بلادرنگ در حال به روز رسانی حالت های خوشه
  • فرم هایی با منطق اعتبار سنجی تو در تو
  • بارگذاری دینامیک منابع که به راحتی می تواند ما را به فراموشی بسپارد

آزمایش دستی برای مدتی کار کرد، اما با انباشته شدن ویژگی‌ها، مشخص شد که ما به چیز بهتری نیاز داریم. چیزی که می‌تواند رفتار واقعی کاربر را شبیه‌سازی کند، رگرسیون‌ها را زودتر تشخیص دهد و به‌طور خودکار در هر روابط عمومی اجرا شود.

تیم پشت سرش

منبع باز هرگز یک کنسرت انفرادی نیست. من خوش شانس بودم که با افراد شگفت انگیز کار کردم:

نوپور شیوانی (رهبر تیم): نوپور چسبی بود که همه چیز را به هم چسباند. او فقط کد را بررسی نکرد، بلکه درگیر شد و آن را با ما نوشت. توجه او به جزئیات و توانایی او برای نگه داشتن ما در مسیر، باعث شد تا ضرب الاجل های رسیدن به آنها حتی در طول دوی های شدید قابل دستیابی باشد.

آلوک خطر: الوک یک هم تیمی فوق العاده برای همکاری بود. پیمایش در جریان‌های پیچیده رابط کاربری زمانی که یک نفر در کنار شما کار می‌کند بسیار آسان‌تر است.

شیوام کومار (مربی): شیوام فقط به من جواب نداد، او به من یاد داد که چگونه آنها را خودم پیدا کنم. این نوع راهنمایی نادر و فوق العاده ارزشمند است. راهنمایی های او در این دوره کارآموزی واقعاً به رشد من سرعت بخشید.

وارد نمایشنامه نویس شوید

Playwright یک چارچوب آزمایشی متن باز است که توسط مایکروسافت توسعه یافته است. به آن به عنوان یک ابزار اتوماسیون مرورگر روی استروئیدها فکر کنید. برخلاف چارچوب‌های آزمایشی سنتی، Playwright یک API یکپارچه برای خودکارسازی Chromium، Firefox و WebKit با یک پایه کد ارائه می‌کند.
Playwright در هسته خود، نمونه های واقعی مرورگر را راه اندازی می کند و آنها را به صورت برنامه ریزی کنترل می کند. شما می توانید تعاملات کاربر مانند کلیک ها، ارسال فرم ها، ناوبری و حتی سناریوهای پیچیده مانند آپلود فایل یا عملیات کشیدن و رها کردن را شبیه سازی کنید. اما بسیار فراتر از اتوماسیون ساده است.


چرا نمایشنامه نویس برنده شد

این فقط شبیه سازی کلیک ها نیست. در اینجا چیزی است که نمایشنامه نویس را به انتخاب درست تبدیل کرده است:

تایم اوت خودکار: نمایشنامه‌نویس به‌طور خودکار منتظر می‌ماند تا عناصر قبل از تعامل با آنها آماده شوند (شبکه غیرفعال، انیمیشن‌ها کامل شده و غیره). این آزمایش‌های متزلزلی را که ما را با فریمورک‌های سبک سلنیوم آزار می‌داد، حذف می‌کند.

رهگیری WebSocket: خیلی بزرگ بود من می‌توانم اتصالات WebSocket را برای شبیه‌سازی به‌روزرسانی‌های خوشه‌ای بدون نیاز به محیط کامل 50 خوشه‌ای در طول آزمایش، مسخره کنم. تغییر دهنده بازی

تست مرورگرهای مختلف: اکنون تأیید می‌کنیم که KubeStellar روی Chromium، Firefox و WebKit در یک اجرای آزمایشی به درستی کار می‌کند.

چی فرستادم؟

در طول دوره کارآموزی، این چیزی است که من ساختم:

  • بیش از 30 درخواست کشش مطرح و ذوب شده است
  • پوشش انتها به انتها برای جریان های کاربر حیاتی: احراز هویت، مدیریت خوشه، و ایجاد خط مشی الزام آور
  • ادغام CI/CD: این تست ها اکنون به طور خودکار روی GitHub Actions اجرا می شوند و از پایگاه کد در برابر رگرسیون محافظت می کنند

فراتر از کد

کار فنی با ارزش بود، اما صادقانه بگویم، راهنمایی چیزی بود که این تجربه را خاص کرد.

کار با اندی اندرسون، شیوام کومار، اونکار شلکه و ریشی موندال به من آموخت که چگونه همکاری منبع باز واقعی کار می کند. هر مرور کد درسی برای نوشتن کدهای تمیزتر و قابل نگهداری تر بود.

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

تکمیل

اگر در DevOps یا در فضای ابری کار می کنید، به طور جدی توصیه می کنم KubeStellar را بررسی کنید. مشکلات واقعی را که تیم ها هنگام مدیریت چند خوشه با آن مواجه می شوند، حل می کند.

آیا می خواهید در مورد نمایشنامه نویس، Kubernetes با چندین خوشه یا نحوه شروع کارآموزی LFX صحبت کنید؟ با من تماس بگیرید، من همیشه خوشحالم که چت می کنم.

اوه، و اگر می خواهید بیشتر در مورد تجربه من بشنوید، یک پادکست در مورد آن درست کردم.

به ما در ساخت ابزارهای بهتر کمک کنید

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

اگر 5 دقیقه وقت دارید، خوشحال می شویم نظرات شما را بشنویم:

ورودی شما آنچه را که بعداً می سازیم شکل می دهد.


Source link

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

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

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