Playwright
- Playwright: دليل شامل للمبتدئين في اختبار الويب الآلي
Playwright هو إطار عمل (framework) حديث وقوي لتطوير اختبارات الويب الآلية. يتيح لك كتابة اختبارات موثوقة وسريعة عبر مختلف المتصفحات، مما يضمن جودة تطبيقات الويب الخاصة بك. يهدف هذا المقال إلى تقديم شرح مفصل لـ Playwright للمبتدئين، مع التركيز على المفاهيم الأساسية، والإعداد، وكتابة الاختبارات البسيطة.
ما هو Playwright ولماذا نستخدمه؟
في عالم تطوير الويب السريع، يعد اختبار التطبيقات بشكل شامل أمرًا بالغ الأهمية. الاختبارات اليدوية تستغرق وقتًا طويلاً وعرضة للأخطاء. هنا يأتي دور أتمتة الاختبارات. Playwright هو أداة مصممة خصيصًا لهذا الغرض، وتتفوق على العديد من الأدوات الأخرى بفضل ميزاتها الفريدة:
- دعم متعدد المتصفحات: يدعم Playwright تشغيل الاختبارات على Chromium (Chrome, Edge)، Firefox، و WebKit (Safari). هذا يضمن أن تطبيقك يعمل بشكل صحيح عبر مختلف بيئات المستخدمين.
- التزامن القوي: يسمح Playwright بتشغيل الاختبارات بالتوازي، مما يقلل بشكل كبير من وقت التنفيذ الإجمالي.
- التعامل مع علامات التبويب والنوافذ المتعددة: Playwright يتعامل بسهولة مع السيناريوهات المعقدة التي تتضمن فتح علامات تبويب أو نوافذ جديدة.
- محاكاة دقيقة للمستخدم: يوفر Playwright واجهة برمجة تطبيقات (API) غنية لمحاكاة تفاعلات المستخدم بدقة، مثل النقر، والكتابة، والتمرير.
- التقاط التسجيلات: يمكن لـ Playwright التقاط التسجيلات (Recordings) لتفاعلات المستخدم وتحويلها تلقائيًا إلى اختبارات.
- تتبع الأخطاء الممتاز: يوفر Playwright تقارير مفصلة عن الأخطاء، بما في ذلك لقطات شاشة ومقاطع فيديو، مما يسهل عملية تصحيح الأخطاء.
- التركيز على الموثوقية: يهدف Playwright إلى تقليل حالات الفشل الكاذبة (flaky tests) من خلال آليات مثل إعادة المحاولة التلقائية (auto-waiting) والتحقق من حالة الصفحة.
الإعداد والتركيب
لبدء استخدام Playwright، يجب عليك أولاً تثبيته وإعداده. تتطلب Playwright تثبيت Node.js و npm (أو Yarn).
1. تثبيت Node.js و npm: تأكد من أن لديك أحدث إصدار من Node.js و npm مثبتين على جهازك. يمكنك تنزيلها من الموقع الرسمي لـ Node.js: [[1]] 2. إنشاء مشروع جديد: أنشئ مجلدًا جديدًا لمشروعك وانتقل إليه في سطر الأوامر. 3. تهيئة المشروع: قم بتهيئة المشروع باستخدام الأمر `npm init -y`. 4. تثبيت Playwright: قم بتثبيت Playwright باستخدام الأمر `npm install -D @playwright/test`.
بعد تثبيت Playwright، ستحتاج إلى تنزيل المتصفحات التي تريد استخدامها للاختبار. يمكنك القيام بذلك باستخدام الأمر:
```bash npx playwright install ```
سيقوم هذا الأمر بتنزيل Chromium و Firefox و WebKit وتثبيتهما في مشروعك.
المفاهيم الأساسية
قبل كتابة أي اختبارات، من المهم فهم بعض المفاهيم الأساسية في Playwright:
- Playwright Context: يمثل سياق اختبار واحد. يمكن أن يكون لكل سياق متصفح خاص به، وملفات تعريف الارتباط (cookies)، والتخزين المحلي (local storage).
- Browser: يمثل مثيلًا لمتصفح. يمكن إنشاء عدة سياقات اختبار من نفس المتصفح.
- Page: يمثل صفحة ويب مفتوحة في المتصفح. تعتبر الصفحة هي المكان الذي ستتفاعل فيه مع عناصر الويب.
- Locator: يستخدم لتحديد عناصر الويب في الصفحة. يوفر Playwright مجموعة متنوعة من طرق تحديد العناصر، مثل النص، وسم HTML، وسمات (attributes) العنصر.
- API: واجهة برمجة التطبيقات (API) الخاصة بـ Playwright توفر مجموعة واسعة من الوظائف للتفاعل مع المتصفح وصفحات الويب.
كتابة أول اختبار
لنبدأ بكتابة اختبار بسيط للتحقق من أن عنوان صفحة الويب صحيح.
1. إنشاء ملف اختبار: أنشئ ملفًا جديدًا باسم `example.spec.ts` (أو `example.spec.js` إذا كنت تستخدم JavaScript). 2. كتابة الاختبار: أضف الكود التالي إلى الملف:
```typescript import { test, expect } from '@playwright/test';
test('عنوان الصفحة صحيح', async ({ page }) => {
await page.goto('https://www.example.com'); await expect(page).toHaveTitle('Example Domain');
}); ```
يشرح هذا الكود:
- `import { test, expect } from '@playwright/test';`: يستورد وظائف `test` و `expect` من مكتبة Playwright.
- `test('عنوان الصفحة صحيح', async ({ page }) => { ... });`: يعرّف اختبارًا جديدًا باسم "عنوان الصفحة صحيح". تأخذ الدالة `test` وسيطة `page`، وهي كائن يمثل الصفحة الحالية.
- `await page.goto('https://www.example.com');`: ينتقل إلى صفحة الويب `https://www.example.com`.
- `await expect(page).toHaveTitle('Example Domain');`: يتحقق من أن عنوان الصفحة هو "Example Domain". `expect` هو كائن يستخدم لإجراء التأكيدات (assertions). `toHaveTitle` هو أحد التأكيدات المتاحة في Playwright.
3. تشغيل الاختبار: قم بتشغيل الاختبار باستخدام الأمر:
```bash npx playwright test ```
سيقوم Playwright بتشغيل الاختبار وعرض النتائج في سطر الأوامر.
تحديد العناصر (Locators)
تحديد العناصر هو جزء أساسي من كتابة اختبارات الويب. يوفر Playwright مجموعة متنوعة من الطرق لتحديد العناصر:
- `getByText()`: يحدد عنصرًا بناءً على النص الذي يحتويه.
- `getByRole()`: يحدد عنصرًا بناءً على دوره (role) في واجهة المستخدم (UI)، مثل "button" أو "link".
- `getByAltText()`: يحدد عنصرًا بناءً على نص البديل (alt text) الخاص به.
- `getByPlaceholder()`: يحدد عنصرًا بناءً على نص العنصر النائب (placeholder).
- `getByLabel()`: يحدد عنصرًا بناءً على التسمية (label) المرتبطة به.
- `getByTestId()`: يحدد عنصرًا بناءً على سمة `data-testid`. هذه الطريقة مفيدة بشكل خاص للاختبارات، حيث تسمح لك بتحديد العناصر بشكل فريد دون الاعتماد على سمات UI التي قد تتغير.
- `locator.click()`: ينقر على العنصر المحدد.
- `locator.fill()`: يملأ حقل إدخال (input field) بالنص المحدد.
- `locator.check()`: يحدد خانة اختيار (checkbox).
- `locator.uncheck()`: يلغي تحديد خانة اختيار.
- `locator.selectOption()`: يحدد خيارًا في قائمة منسدلة (select dropdown).
أمثلة إضافية
- التحقق من وجود عنصر:
```typescript await expect(page.getByText('Welcome')).toBeVisible(); ```
- النقر على زر:
```typescript await page.getByRole('button', { name: 'Submit' }).click(); ```
- ملء حقل إدخال:
```typescript await page.getByLabel('Username').fill('testuser'); ```
- التحقق من قيمة حقل إدخال:
```typescript await expect(page.getByLabel('Username')).toHaveValue('testuser'); ```
استراتيجيات متقدمة في Playwright
- Auto-waiting: Playwright ينتظر تلقائيًا حتى يصبح العنصر مرئيًا وقابلاً للتفاعل قبل إجراء أي عملية عليه. هذا يقلل من حالات الفشل الكاذبة.
- Tracing: يمكن لـ Playwright تسجيل جميع تفاعلات الاختبار في ملف تتبع (trace file). يمكن استخدام ملف التتبع لتحليل الأخطاء وتصحيحها.
- Video Recording: يمكن لـ Playwright تسجيل مقاطع فيديو للاختبارات. هذا مفيد بشكل خاص لتصحيح الأخطاء المرئية.
- Parallel Execution: يمكن لـ Playwright تشغيل الاختبارات بالتوازي، مما يقلل من وقت التنفيذ الإجمالي.
- Configuration: يمكن تكوين Playwright باستخدام ملف `playwright.config.ts` لتحديد المتصفحات، ومسارات الاختبار، وخيارات أخرى.
Playwright والخيارات الثنائية
على الرغم من أن Playwright ليس مصممًا خصيصًا لاختبار منصات الخيارات الثنائية، إلا أنه يمكن استخدامه لاختبار واجهة المستخدم (UI) الخاصة بهذه المنصات. يمكنك استخدام Playwright للتحقق من:
- تسجيل الدخول/الخروج: التأكد من أن عملية تسجيل الدخول/الخروج تعمل بشكل صحيح.
- إيداع/سحب الأموال: التحقق من أن عمليات الإيداع والسحب تتم بشكل آمن وصحيح.
- تنفيذ الصفقات: التأكد من أن تنفيذ الصفقات يتم بشكل صحيح ويعرض المعلومات الصحيحة.
- عرض الرسوم البيانية والمؤشرات: التحقق من أن الرسوم البيانية والمؤشرات يتم عرضها بشكل صحيح.
- التنبيهات والإشعارات: التأكد من أن التنبيهات والإشعارات يتم عرضها في الوقت المناسب.
أدوات تحليل حجم التداول مثل Volume Profile و Market Depth يمكن اختبار عرضها بشكل صحيح باستخدام Playwright. أيضًا، يمكن اختبار عرض المؤشرات الفنية مثل Moving Average و Relative Strength Index (RSI) و Bollinger Bands. يمكن محاكاة استراتيجيات تداول بسيطة مثل Binary Options Ladder Strategy و 60-Second Strategy للتحقق من سلوك المنصة. تحليل الاتجاهات باستخدام Trend Lines و Support and Resistance Levels يمكن التحقق من عرضه بشكل صحيح. استراتيجيات مثل Straddle Strategy و Butterfly Spread يمكن اختبار تنفيذها من خلال واجهة المستخدم. استخدام Candlestick Patterns مثل Doji و Hammer يمكن التحقق من عرضها بشكل صحيح. تطبيق Fibonacci Retracement يمكن اختباره. كما يمكن اختبار دقة عرض MACD و Stochastic Oscillator. استراتيجيات إدارة المخاطر مثل Martingale و Anti-Martingale يمكن اختبار تنفيذها. التحقق من دقة عرض بيانات Option Chain و Implied Volatility. اختبار تفاعل المستخدم مع Trading Platform API. التحقق من عمل Automated Trading Systems. اختبار دقة عرض Risk Management Tools. التحقق من عمل Real-Time Data Feeds. اختبار دقة عرض Profit/Loss Calculation. التحقق من عمل Account History. اختبار دقة عرض Commission Structure. التحقق من عمل Customer Support Chat.
الخلاصة
Playwright هو إطار عمل قوي ومرن لاختبار الويب الآلي. يوفر مجموعة واسعة من الميزات التي تجعله أداة مثالية لاختبار تطبيقات الويب الحديثة. من خلال فهم المفاهيم الأساسية واتباع الأمثلة المقدمة في هذا المقال، يمكنك البدء في كتابة اختبارات موثوقة وفعالة لتطبيقات الويب الخاصة بك.
اختبار الويب أتمتة الاختبار Selenium Cypress JavaScript TypeScript Node.js npm UI Testing E2E Testing
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين