تستهای End-to-End (E2E) به عنوان یک روش اساسی برای ارزیابی تجربه کاربر نهایی و اطمینان از یکپارچگی کل سیستم شناخته میشوند. Playwright، یک فریمورک اتوماسیون تست مرورگر قدرتمند، به دلیل سرعت، قابلیت اطمینان و API (Application Programming Interface) بصری خود، به یک انتخاب محبوب در میان توسعهدهندگان تبدیل شده است. ظهور هوش مصنوعی (AI) فرصتهای جدیدی را برای بهبود فرآیند تست نرمافزار ارائه داده است. این مقاله به طور خاص بر روی قابلیت یکپارچهسازی هوش مصنوعی با Playwright از طریق پروتکل Model Context Protocol (MCP) تمرکز دارد و نحوه راهاندازی و استفاده از آن را با ارائه کدهای مرتبط شرح میدهد. هدف، درک چگونگی استفاده از MCP برای ارائه context غنی به مدلهای هوش مصنوعی جهت تولید تستهای E2E مؤثر و کارآمد برای توسعهدهندگان .NET است.
یکپارچهسازی هوش مصنوعی با Playwright از طریق MCP: بستری برای تولید تست هوشمند
پروتکل Model Context Protocol (MCP) و سرور Playwright MCP، یک مکانیزم نوآورانه برای تعامل Playwright با مدلهای هوش مصنوعی فراهم میکنند. مفهوم کلیدی MCP، امکان ارائه context (زمینه) دقیق و مرتبط از برنامه تحت تست به هوش مصنوعی است. این context میتواند شامل ساختار صفحه، عناصر تعاملی، عملکردهای موجود و حتی رفتار مورد انتظار برنامه باشد. پیش از معرفی MCP، یکی از چالشهای اصلی در استفاده از هوش مصنوعی برای تولید تست، فقدان درک عمیق از برنامه توسط مدلهای هوش مصنوعی بود که اغلب منجر به تولید تستهای غیرمرتبط یا با کیفیت پایین میشد. MCP این مانع را از بین میبرد و راه را برای تولید تستهای هوشمندتر و کارآمدتر هموار میکند.
برای فعالسازی و استفاده از Playwright MCP، ابتدا باید تنظیمات مربوطه را در فایل پیکربندی VSCode (settings.json) اعمال کرد. این تنظیمات، سرور MCP برای Playwright را تعریف میکند که از طریق npm (Node Package Manager) نصب میشود. قطعه کد زیر نحوه افزودن این تنظیمات به فایل settings.json را نشان میدهد:
{
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
}در این تنظیمات، بخش "mcp" پیکربندیهای مربوط به MCP را در خود جای داده است. در داخل آن، بخش "servers" لیستی از سرورهای MCP فعال را تعریف میکند. در اینجا، یک سرور با نام "playwright" تعریف شده است. کلید "command" دستور اجرایی برای راهاندازی سرور MCP را مشخص میکند که در این مورد npx است. آرایه "args" آرگومانهای خط دستوری را شامل میشود که برای نصب آخرین نسخه بسته @playwright/mcp استفاده میشود. فلگ -y به npm اجازه میدهد تا بدون درخواست تأیید، بسته را نصب کند.
پس از اعمال این تنظیمات و راهاندازی VSCode، ابزارهای Playwright MCP در لیست ابزارهای در دسترس Command Palette ظاهر میشوند. این امر نشاندهنده نصب و فعالسازی موفقیتآمیز MCP برای Playwright است.
یکی از قابلیتهای کلیدی ارائه شده توسط Playwright MCP، امکان اجرای دستورات Playwright از طریق حالت agent (ایجنت) در GitHub Copilot است. برای این کار، از پیشوند # قبل از دستور مورد نظر استفاده میشود. مهمترین دستور در این context، #browser_navigate است که به هوش مصنوعی اجازه میدهد تا به یک آدرس وب مشخص هدایت شود. برای مثال، برای هدایت Copilot به صفحه اصلی یک وبسایت، میتوان از دستور زیر در محیط چت Copilot استفاده کرد:
#browser_navigate https://timdeschryver.dev
پس از اجرای این دستور، Copilot از کاربر اجازه اجرای آن را درخواست میکند. با تأیید کاربر، Copilot مرورگری را باز کرده و به آدرس داده شده، هدایت میشود و سپس یک خلاصه از محتوای صفحه ارائه میدهد. این تعامل اولیه نشان میدهد که MCP چگونه امکان تعامل هوش مصنوعی با برنامه تحت تست را فراهم میکند.
تولید تست با درک Context از طریق MCP
توانایی هوش مصنوعی در تعامل با برنامه تحت تست از طریق MCP، امکان تولید تستهای هوشمندتر را فراهم میکند. با ارائه یک prompt (دستور) که هوش مصنوعی را به تعامل با وبسایت و بررسی عملکردهای آن هدایت میکند و سپس درخواست نوشتن تست برای یک صفحه خاص (مانند صفحه وبلاگ) با استفاده از #browser_navigate، میتوان شاهد فرآیند تولید تست توسط هوش مصنوعی بود. مثال زیر یک prompt ساده برای این منظور را نشان میدهد:
Interact with my website and take a look at the functionalities.
When you have enough information please test for this page.
#browser_navigate https://timdeschryver.dev/blog
در طول تعامل هوش مصنوعی با صفحه، ممکن است درخواستهای بیشتری برای اجرای دستورات مختلف (مانند کلیک کردن روی دکمهها یا پر کردن فرمها) از کاربر دریافت شود. پس از اتمام فرآیند، یک فایل تست جدید (با پسوند .test.ts) در پوشه تستها ایجاد میشود و پیشرفت تولید تست و عملکردهای شناسایی شده در صفحه در محیط چت Copilot قابل مشاهده است.
ارزیابی و عیبیابی تستهای تولید شده با کمک Context MCP
تستهای تولید شده با استفاده از context ارائه شده از طریق MCP، به طور کلی مرتبطتر و با کیفیت بهتری هستند. با این حال، ممکن است همچنان نیاز به بازبینی و اصلاح داشته باشند. قابلیت "copy as prompt" در Playwright، که پیشتر توضیح داده شد، در این مرحله بسیار مفید است. با کپی کردن اطلاعات مربوط به تستهای ناموفق (شامل پیام خطا، Stack Trace، ARIA Snapshot و سورس کد تست) به عنوان یک prompt و ارائه آن به Copilot، میتوان از هوش مصنوعی برای تشخیص علت خطا و پیشنهاد راه حل استفاده کرد. این فرآیند، عیبیابی تستها را بسیار کارآمدتر میکند، زیرا هوش مصنوعی با دسترسی به context دقیق خطا و ساختار صفحه، میتواند راهنماییهای هدفمندی ارائه دهد.
نتیجهگیری
یکپارچهسازی هوش مصنوعی با Playwright از طریق MCP، یک گام مهم در جهت تسهیل و بهبود فرآیند تست نرمافزار است. با فراهم کردن بستری برای ارائه context غنی از برنامه تحت تست به مدلهای هوش مصنوعی، امکان تولید تستهای End-to-End هوشمندتر، مرتبطتر و کارآمدتر فراهم میشود. فرآیند راهاندازی MCP با استفاده از تنظیمات settings.json و استفاده از دستورات آن در محیط چت Copilot، نسبتاً ساده است و به توسعهدهندگان .NET این امکان را میدهد تا به راحتی از این قابلیتهای قدرتمند بهرهمند شوند. اگرچه تستهای تولید شده ممکن است نیاز به بازبینی داشته باشند، اما پتانسیل هوش مصنوعی در تسریع فرآیند تست و کمک در عیبیابی، آن را به یک ابزار ارزشمند برای تیمهای توسعه نرمافزار تبدیل میکند.