المُشغّل
المُشغّل في WebdriverIO ينظم كيف وأين يتم تشغيل الاختبارات عند استخدام مشغّل الاختبار. يدعم WebdriverIO حاليًا نوعين مختلفين من المشغلات: المشغّل المحلي ومشغّل المتصفح.
المشغّل المحلي
يبدأ المشغّل المحلي إطار العمل الخاص بك (مثل Mocha أو Jasmine أو Cucumber) ضمن عملية عامل ويشغّل جميع ملفات الاختبار الخاصة بك في بيئة Node.js. يتم تشغيل كل ملف اختبار في عملية عامل منفصلة لكل قدرة مما يسمح بأقصى قدر من التزامن. تستخدم كل عملية عامل نسخة واحدة من المتصفح وبالتالي تدير جلسة المتصفح الخاصة بها مما يسمح بأقصى قدر من العزل.
نظرًا لأن كل اختبار يتم تشغيله في عملية معزولة خاصة به، فإنه من غير الممكن مشاركة البيانات عبر ملفات الاختبار. هناك طريقتان للتغلب على هذا:
- استخدم
@wdio/shared-store-service
لمشاركة البيانات عبر جميع العمال - تجميع ملفات المواصفات (اقرأ المزيد في تنظيم مجموعة الاختبار)
إذا لم يتم تحديد أي شيء آخر في ملف wdio.conf.js
، فإن المشغّل المحلي هو المشغّل الافتراضي في WebdriverIO.
التثبيت
لاستخدام المشغّل المحلي، يمكنك تثبيته عبر:
npm install --save-dev @wdio/local-runner
الإعداد
المشغّل المحلي هو المشغّل الافتراضي في WebdriverIO لذا لا داعي لتحديده ضمن ملف wdio.conf.js
. إذا كنت ترغب في تعيينه بشكل صريح، يمكنك تعريفه على النحو التالي:
// wdio.conf.js
export const {
// ...
runner: 'local',
// ...
}
مشغّل المتصفح
على عكس المشغّل المحلي، فإن مشغّل المتصفح يبدأ وينفذ الإطار داخل المتصفح. هذا يسمح لك بتشغيل اختبارات الوحدة أو اختبارات المكونات في متصفح حقيقي بدلاً من JSDOM مثل العديد من أطر الاختبار الأخرى.
في حين أن JSDOM يستخدم على نطاق واسع لأغراض الاختبار، إلا أنه في النهاية ليس متصفحًا حقيقيًا ولا يمكنك محاكاة بيئات الجوال معه. باستخدام هذا المشغّل، يتيح لك WebdriverIO تشغيل اختباراتك في المتصفح بسهولة واستخدام أوامر WebDriver للتفاعل مع العناصر المعروضة على الصفحة.
فيما يلي نظرة عامة على تشغيل الاختبارات داخل JSDOM مقابل مشغّل المتصفح WebdriverIO
JSDOM | مشغّل متصفح WebdriverIO | |
---|---|---|
1. | يشغّل اختباراتك داخل Node.js باستخدام إعادة تنفيذ معايير الويب، وخاصة WHATWG DOM ومعايير HTML | ينفذ اختبارك في متصفح حقيقي ويشغّل الكود في بيئة يستخدمها المستخدمون |
2. | يمكن فقط محاكاة التفاعلات مع المكونات عبر JavaScript | يمكنك استخدام واجهة برمجة تطبيقات WebdriverIO للتفاعل مع العناصر من خلال بروتوكول WebDriver |
3. | دعم Canvas يتطلب تبعيات إضافية وله قيود | لديك وصول إلى واجهة برمجة تطبيقات Canvas الحقيقية |
4. | لدى JSDOM بعض الملاحظات وواجهات برمجة الويب غير المدعومة | جميع واجهات برمجة الويب مدعومة لأن الاختبار يتم في متصفح حقيقي |
5. | من المستحيل اكتشاف الأخطاء عبر المتصفحات المختلفة | دعم لجميع المتصفحات بما في ذلك متصفحات الجوال |
6. | لا يمكن اختبار حالات العناصر الزائفة | دعم للحالات الزائفة مثل :hover أو :active |
يستخدم هذا المشغّل Vite لتجميع كود الاختبار الخاص بك وتحميله في المتصفح. ويأتي مع إعدادات مسبقة لأطر عمل المكونات التالية:
- React
- Preact
- Vue.js
- Svelte
- SolidJS
- Stencil
يتم تشغيل كل ملف اختبار / مجموعة ملفات اختبار داخل صفحة واحدة، مما يعني أنه بين كل اختبار يتم إعادة تحميل الصفحة لضمان العزل بين الاختبارات.
التثبيت
لاستخدام مشغّل المتصفح يمكنك تثبيته عبر:
npm install --save-dev @wdio/browser-runner
الإعداد
لاستخدام مشغّل المتصفح، يجب عليك تحديد خاصية runner
داخل ملف wdio.conf.js
الخاص بك، على سبيل المثال:
// wdio.conf.js
export const {
// ...
runner: 'browser',
// ...
}
خيارات المشغّل
يسمح مشغّل المتصفح بالتكوينات التالية:
preset
إذا كنت تختبر مكونات باستخدام إحدى الأطر المذكورة أعلاه، يمكنك تحديد إعداد مسبق يضمن تكوين كل شيء من البداية. لا يمكن استخدام هذا الخيار مع viteConfig
.
النوع: vue
| svelte
| solid
| react
| preact
| stencil
مثال:
export const {
// ...
runner: ['browser', {
preset: 'svelte'
}],
// ...
}