Software Engineer Labdon
601 subscribers
43 photos
4 videos
2 files
755 links
👑 Software Labdon

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How Playwright Runs Workers and Test Fixtures (Parallel vs Serial vs Default)!

🟢 خلاصه مقاله:
این مقاله از Thananjayan Rajasekaran به‌صورت عملی نشان می‌دهد Playwright Test چگونه workers و test fixtures را مدیریت می‌کند و تفاوت حالت‌های default، parallel و serial چیست. ابتدا توضیح می‌دهد که به‌طور پیش‌فرض فایل‌های تست روی چند worker به‌صورت موازی اجرا می‌شوند اما تست‌های داخل هر فایل به‌صورت ترتیبی اجرا می‌گردند؛ همچنین به تعامل retries، projects و گزینه‌هایی مانند --workers و sharding برای کنترل سرعت و پایداری اشاره می‌کند. سپس روش‌های افزایش همزمانی را بررسی می‌کند: فعال‌کردن fullyParallel در تنظیمات یا استفاده از test.describe.configure({ mode: 'parallel' }) برای موازی‌سازی بخشی از تست‌ها، همراه با هشدار درباره ریسک‌های وضعیت مشترک و flaky شدن. در بخش serial، با test.describe.serial یا تنظیم mode: 'serial' می‌توان اجرای ترتیبی و توقف زنجیره پس از شکست را تضمین کرد؛ راهکاری که برای گردش‌کارهای وابسته یا منابع غیرقابل‌اشتراک میان workers مفید است، هرچند توصیه می‌شود فقط در صورت نیاز استفاده شود. بخش مهم دیگر به fixtures می‌پردازد: تفاوت بین per-test و worker-scoped و تأثیر مستقیم آن‌ها بر موازی‌سازی؛ اینکه worker-scoped بین workers به‌اشتراک گذاشته نمی‌شود و ممکن است چند نمونه مستقل از یک منبع ایجاد شود. مقاله با نمونه‌کدهای روشن برای تنظیم workers، فعال‌سازی fullyParallel، علامت‌گذاری suiteها به‌صورت serial یا parallel و ترکیب آن‌ها با projects و retries، یک الگوی ذهنی شفاف برای انتخاب بهینه بین default، parallel و serial ارائه می‌دهد تا هم سرعت اجرا بالا برود و هم پایداری CI حفظ شود.

#Playwright #Testing #E2E #ParallelTesting #TestAutomation #JavaScript #Fixtures #CI

🟣لینک مقاله:
https://cur.at/93wY1jL?m=web


👑 @software_Labdon
1
🔵 عنوان مقاله
Building Smarter Tests with Custom Annotations and Listeners in TestNG — A Practical Guide

🟢 خلاصه مقاله:
**این مقاله نشان می‌دهد چگونه با ترکیب annotationهای سفارشی و listenerها در TestNG می‌توان تست‌هایی هوشمندتر، پایدارتر و مقیاس‌پذیرتر ساخت. با افزودن متادیتا مانند مالک، شدت، مؤلفه یا شرایط اجرا به‌صورت annotation، اجرای تست‌ها قابل کنترل‌تر می‌شود: فیلترکردن در CI، تنظیم داینامیک retry برای تست‌های flaky، اعمال timeout و skipهای شرطی—all بدون شلوغ‌کردن بدنه تست‌ها. در سوی دیگر، listenerها از رویدادهای چرخه عمر TestNG برای لاگ‌گیری یکدست، ثبت اسکرین‌شات و آرتیفکت در خطا، جمع‌آوری متریک زمان، قرنطینه‌کردن تست‌های flaky، fail-fast و یکپارچه‌سازی با گزارش‌دهی‌هایی مثل Allure استفاده می‌کنند؛ بنابراین کد تست تمیزتر و رفتار مقطعی یکپارچه می‌شود. مقاله همچنین نکات اجرای موازی را پوشش می‌دهد: پرهیز از state مشترک، استفاده از منابع thread-local (مثل WebDriver)، جداسازی داده و تنظیم timeout برای حفظ ایزولیشن و کاهش flakiness در مقیاس CI. جمع‌بندی توصیه می‌کند مجموعه‌ای کوچک و شفاف از annotationها و یک listener عمومی بسازید که سیاست‌ها را از روی متادیتا اعمال کند، از بازتاب کنترل‌شده و قابل‌آزمون بهره ببرد و به‌تدریج قابلیت‌های باارزش مثل لاگ منسجم، آرتیفکت‌های خطا و retry هدفمند را اضافه کند. در پایان، Vaibhav Chavan نکات کلیدی و راهنمای تکمیلی Parallel Testing with TestNG را معرفی می‌کند.

#TestNG #JavaTesting #Annotations #Listeners #ParallelTesting #AutomationTesting #QA #CI/CD

🟣لینک مقاله:
https://cur.at/2uhpDOO?m=web


👑 @software_Labdon