Playwright 1.56 میں تین بلٹ ان AI ایجنٹس شامل ہیں جو ٹیسٹ سویٹ کی منصوبہ بندی کرتے ہیں، متعلقہ TypeScript اسکرپٹس لکھتے ہیں، اور ٹوٹے ہوئے لوکیٹرز کو فوری طور پر ٹھیک کرتے ہیں۔ نتیجہ: دستی ٹیسٹنگ کی مشقت اب ایک AI کی مدد سے چلنے والے ورک فلو میں بدل جاتی ہے۔

یہ تبدیلی کیوں اہم ہے

آٹومیشن انجینئرز طویل عرصے سے ایک ہی طرح کے چکر میں پھنسے ہوئے ہیں: ضروریات کو ٹیسٹ کیسز میں تبدیل کرنا، اسکرپٹس کو خود کوڈ کرنا، انہیں چلانا، اور پھر UI میں تبدیلی آنے پر غیر مستحکم (flaky) سلیکٹرز کے پیچھے بھاگنا۔ دیکھ بھال کا بوجھ (maintenance overhead) اکثر آٹومیشن سے بچنے والے وقت سے کہیں زیادہ ہو سکتا ہے، خاص طور پر تیزی سے بدلتے ہوئے فرنٹ اینڈز میں۔ ٹیسٹنگ فریم ورک میں براہ راست AI ایجنٹس کو شامل کر کے، Playwright "ٹھیک کریں اور چلائیں" (fix-and-run) کے چکر کو کم کرتا ہے اور انجینئرز کو سلیکٹرز کی تلاش کے بجائے اعلیٰ سطح کی ٹیسٹ حکمت عملی پر توجہ مرکوز کرنے کا موقع دیتا ہے۔

تینوں ایجنٹس کی وضاحت

  • Planner Agent – یہ ایپلی کیشن کو کیا کرنا چاہیے اس کی قدرتی زبان (natural-language) میں تفصیل لیتا ہے، لائیو سائٹ کا جائزہ لیتا ہے، اور ایک منظم Markdown منصوبہ فراہم کرتا ہے۔ یہ منصوبہ بنیادی یوزر فلو اور ایج کیس سیناریوز کی فہرست دیتا ہے، جس سے کوئی بھی کوڈ لکھنے سے پہلے ایک واضح خاکہ مل جاتا ہے۔
  • Generator Agent – یہ Markdown منصوبے کو استعمال کرتا ہے اور قابلِ عمل TypeScript ٹیسٹ کوڈ تیار کرتا ہے۔ یہ اس بات کی تصدیق کرنے کے لیے چلتے ہوئے براؤزر سے رابطہ کرتا ہے کہ سلیکٹرز مستحکم ہیں، اور اگر ہدایت دی جائے تو یہ Page Object Model (ایک ڈیزائن پیٹرن جو پیج اسٹرکچر کو ٹیسٹ لاجک سے الگ کرتا ہے) پر بھی عمل کر سکتا ہے۔
  • Healer Agent – یہ ٹیسٹ رن کی نگرانی کرتا ہے؛ جب کسی ناکامی کی وجہ UI میں تبدیلی ہو، تو یہ ناکام ہونے والے مراحل کو دوبارہ دہراتا ہے، اپ ڈیٹ شدہ DOM کا معائنہ کرتا ہے، اور ایک درست شدہ سلیکٹر یا لوکیٹر تجویز کرتا ہے۔ یہ تجویز ایک ڈرافٹ پیچ (draft patch) کے طور پر ظاہر ہوتی ہے جسے ڈویلپر قبول یا تبدیل کر سکتا ہے۔

یہ ایجنٹس ایک "ایجنٹک لوپ" (agentic loop) میں کام کرتے ہیں: Planner → Generator → Healer۔ ہر مرحلہ اگلے مرحلے کو ڈیٹا فراہم کرتا ہے، جس سے ایک خودکار طور پر ایڈجسٹ ہونے والا پائپ لائن بنتا ہے جو ٹیسٹ کی جانے والی ایپلی کیشن کے ساتھ ہم آہنگ رہتا ہے۔

یہ عام AI ٹولز سے کیسے مختلف ہے

چیٹ اسٹائل ماڈلز یا کوڈ-کمپلیشن ایکسٹینشنز کوڈ کے ٹکڑے (snippets) تو تیار کر سکتے ہیں، لیکن ان کے پاس لائیو DOM اور مخصوص پروجیکٹ کنفیگریشن تک براہ راست رسائی نہیں ہوتی۔ Playwright کے ایجنٹس ایک Model Context Protocol کا استعمال کرتے ہیں جو موجودہ پیج اسٹرکچر اور ٹیسٹ فریم ورک کی سیٹنگز کو ماڈل میں اسٹریم کرتا ہے، جس سے AI ان درست عناصر کے بارے میں منطق استعمال کر سکتا ہے جن کے ساتھ وہ انٹریکٹ کرے گا۔ اس کے ذریعے تیار کردہ کوڈ نہ صرف سنٹیکس کے لحاظ سے درست ہوتا ہے بلکہ جنریشن کے وقت حقیقی UI سے بھی منسلک ہوتا ہے۔

چند کمانڈز کے ساتھ آغاز کریں

  1. ایک Node پروجیکٹ سیٹ اپ کریں اور Playwright کو بطور dependency شامل کریں۔
  2. اپنے ایڈیٹر کے اندر AI لوپ کو بوٹ اسٹریپ کرنے کے لیے npx playwright init-agents --loop=vscode چلائیں۔
  3. ایک مختصر "seed" ٹیسٹ لکھیں جو ایپلی کیشن کو لوڈ کرے؛ یہ ایجنٹس کو ایک ٹھوس سیاق و سباق (context) فراہم کرتا ہے۔
  4. قدرتی زبان میں پرامپٹس دیں (مثلاً، "Create a checkout flow covering discount codes") تاکہ Planner کو متحرک کیا جا سکے، Generator کو اسکرپٹ تیار کرنے دیں، اور Healer کو اسے درست رکھنے دیں۔

ایجنٹس کو بہتر طریقے سے کام کرنے کے لیے تجاویز

  • واضح seed ٹیسٹ – ابتدائی ٹیسٹ کو قابلِ اعتماد طریقے سے ایپ کو لانچ کرنا چاہیے اور اہم UI عناصر کو ظاہر کرنا چاہیے؛ مبہم انٹری پوائنٹس Planner کو الجھا سکتے ہیں۔
  • منظم seed ڈیٹا – متوقع ان پٹس کی وضاحت کرنے والے JSON fixtures فراہم کرنے سے Generator کو مناسب سلیکٹرز منتخب کرنے میں مدد ملتی ہے۔
  • Page Object Model کا مطالبہ کریں – Generator کو واضح طور پر پیج آبجیکٹس کا ڈھانچہ تیار کرنے کا کہنے سے زیادہ صاف ستھرا اور برقرار رکھنے کے قابل کوڈ حاصل ہوتا ہے۔
  • AI کے آؤٹ پٹ کو ایک ڈرافٹ کے طور پر لیں – کوڈ کو کمٹ کرنے سے پہلے تیار کردہ اسکرپٹس کا جائزہ لیں؛ ایجنٹس اب بھی بزنس لاجک کی باریکیاں نظر انداز کر سکتے ہیں یا ضرورت سے زیادہ عام سلیکٹرز تیار کر سکتے ہیں۔

خطرات اور جوابی نکات

آگے کیا دیکھنا ہے