Playwright 1.56 همراه با سه ایجنت هوش مصنوعی داخلی عرضه می‌شود که یک مجموعه تست را برنامه‌ریزی می‌کنند، اسکریپت‌های TypeScript مربوطه را می‌نویسند و لوکیتورهای (locators) خراب را در لحظه اصلاح می‌کنند. نتیجه این است که فرآیند طاقت‌فرسای تست دستی به یک گردش کار مبتنی بر هوش مصنوعی تبدیل می‌شود.

چرا این تغییر اهمیت دارد

مهندسان اتوماسیون مدت‌هاست که در یک چرخه تکراری گرفتار شده‌اند: تبدیل نیازمندی‌ها به موارد تست (test cases)، کدنویسی دستی اسکریپت‌ها، اجرای آن‌ها و سپس جستجوی سلکتورهای ناپایدار (flaky selectors) در هر بار تغییر رابط کاربری (UI). هزینه‌های نگهداری می‌تواند از زمان ذخیره شده توسط اتوماسیون پیشی بگیرد، به‌ویژه در فرانت‌اندهای پرتحرک. Playwright با گنجاندن مستقیم ایجنت‌های هوش مصنوعی در چارچوب تست، چرخه «اصلاح و اجرا» را کاهش می‌دهد و به مهندسان اجازه می‌دهد به جای جستجوی سلکتور، بر استراتژی تست سطح بالا تمرکز کنند.

توضیح سه ایجنت

  • Planner Agent – یک توصیف به زبان طبیعی از آنچه اپلیکیشن باید انجام دهد را دریافت کرده، سایت زنده را بررسی می‌کند و یک برنامه ساختاریافته به فرمت Markdown ارائه می‌دهد. این برنامه جریان‌های اصلی کاربر و سناریوهای حالت‌های خاص (edge-case) را فهرست می‌کند و پیش از نوشتن هرگونه کد، یک نقشه راه شفاف ارائه می‌دهد.
  • Generator Agent – برنامه Markdown را دریافت کرده و کد تست قابل اجرای TypeScript تولید می‌کند. این ایجنت با مرورگر در حال اجرا ارتباط برقرار می‌کند تا پایداری سلکتورها را تأیید کند و در صورت دستور، می‌تواند از الگوی طراحی Page Object Model (الگویی که ساختار صفحه را از منطق تست جدا می‌کند) پیروی کند.
  • Healer Agent – اجرای تست‌ها را نظارت می‌کند؛ زمانی که یک شکست به تغییر در UI مربوط باشد، مراحل شکست‌خورده را دوباره اجرا کرده، DOM به‌روزرسانی شده را بررسی می‌کند و یک سلکتور یا لوکیتور اصلاح‌شده پیشنهاد می‌دهد. این پیشنهاد به صورت یک وصله (patch) پیش‌نویس ظاهر می‌شود که توسعه‌دهنده می‌تواند آن را بپذیرد یا تغییر دهد.

این ایجنت‌ها در یک «چرخه ایجنتی» (agentic loop) عمل می‌کنند: Planner → Generator → Healer. هر مرحله ورودی مرحله بعدی را فراهم می‌کند و یک خط لوله خودتنظیم ایجاد می‌کند که با اپلیکیشن تحت تست همگام می‌ماند.

تفاوت با ابزارهای هوش مصنوعی عمومی

مدل‌های سبک چت یا افزونه‌های تکمیل کد می‌توانند قطعه‌کد (snippet) تولید کنند، اما آن‌ها دسترسی مستقیم به DOM زنده و پیکربندی خاص پروژه را ندارند. ایجنت‌های Playwright از یک Model Context Protocol استفاده می‌کنند که ساختار صفحه فعلی و تنظیمات چارچوب تست را به مدل استریم می‌کند و به هوش مصنوعی اجازه می‌دهد درباره عناصر دقیقی که قرار است با آن‌ها تعامل داشته باشد، استدلال کند. کدی که تولید می‌شود نه تنها از نظر سینتکس صحیح است، بلکه در لحظه تولید، به رابط کاربری واقعی متصل است.

شروع کار با چند دستور ساده

  1. یک پروژه Node را راه‌اندازی کرده و Playwright را به عنوان یک وابستگی (dependency) اضافه کنید.
  2. دستور npx playwright init-agents --loop=vscode را برای راه‌اندازی چرخه هوش مصنوعی در ویرایشگر خود اجرا کنید.
  3. یک تست «بذر» (seed) حداقلی بنویسید که اپلیکیشن را بارگذاری کند؛ این کار یک بافت (context) مشخص به ایجنت‌ها می‌دهد.
  4. دستورات (prompts) به زبان طبیعی صادر کنید (مثلاً: “Create a checkout flow covering discount codes”) تا Planner فعال شود، اجازه دهید Generator اسکریپت را تولید کند و اجازه دهید Healer سلامت آن را حفظ کند.

نکاتی برای عملکرد بهتر ایجنت‌ها

  • تست بذر شفاف – تست اولیه باید به‌طور قابل اطمینانی اپلیکیشن را اجرا کرده و عناصر اصلی UI را نمایش دهد؛ نقاط ورود مبهم باعث گیج شدن Planner می‌شوند.
  • داده‌های بذر ساختاریافته – ارائه فیکستورهای JSON که ورودی‌های مورد انتظار را توصیف می‌کنند، به Generator کمک می‌کند تا سلکتورهای مناسب را انتخاب کند.
  • درخواست Page Object Model – دستور صریح به Generator برای ساختاردهی (scaffold) اشیاء صفحه، منجر به کد تمیزتر و قابل نگهداری‌تر می‌شود.
  • با خروجی هوش مصنوعی مانند یک پیش‌نویس برخورد کنید – اسکریپت‌های تولید شده را قبل از ثبت (commit) بررسی کنید؛ ایجنت‌ها همچنان ممکن است ظرافت‌های منطق تجاری را نادیده بگیرند یا سلکتورهای بیش از حد عمومی تولید کنند.

ریسک‌ها و نکات متقابل

آنچه باید در ادامه دنبال کنید