خدمة إعادة التشغيل
wdio-rerun-service هي حزمة من الطرف الثالث، لمزيد من المعلومات يرجى الاطلاع على GitHub | npm
تقوم هذه الخدمة بتتبع اختبارات Mocha أو Jasmine الفاشلة وسيناريوهات Cucumber التي يتم تنفيذها ضمن إطار اختبار WebdriverIO. وستسمح بإعادة تشغيل الاختبارات أو السيناريوهات الفاشلة أو غير المستقرة.
ملاحظة: يجب على مستخدمي إطار Cucumber الذين يشغلون إصدارات WebdriverIO 5.x
و6.x
استخدام الإصدار 1.6.x
. إذا كنت تستخدم أحدث إصدار رئيسي من 7.x
، فاستخدم أحدث إصدار 1.7.x
من هذه الخدمة.
إعادة التشغيل مقابل إعادة المحاولة
منطق إعادة المحاولة
المدمج في WebdriverIO لـ Cucumber و Mocha/Jasmine مفيد للتعامل مع الخطوات غير المستقرة في Cucumber و Mocha/Jasmine. إعادة المحاولة في كل إطار لها محاذير:
- Cucumber: لا يأخذ في الاعتبار أن بعض الخطوات قد لا تكون قابلة لإعادة المحاولة في وسط الاختبار. تشغيل خطوة مرتين قد يكسر بقية السيناريو أو قد لا يكون ممكناً في سياق الاختبار.
- Mocha/Jasmine: يمكن تطبيق منطق
إعادة المحاولة
على اختبار فردي، ومع ذلك، يتم ذلك في الوقت الفعلي وربما لا يأخذ في الاعتبار المشكلات المؤقتة أو مشاكل اتصال الشبكة.
الاختلافات الرئيسية لـ إعادة التشغيل
:
- ستعيد تشغيل سيناريو Cucumber كامل وليس خطوة واحدة فقط
- تمكن إعادة تشغيل ملف مواصفات بأكمله بعد اكتمال تنفيذ الاختبار الرئيسي
- يمكن نسخها وتنفيذها محلياً (
إعادة المحاولة
لا يمكن ذلك) - لا يزال بالإمكان استخدامها بالتزامن مع أساليب
إعادة المحاولة
- لا تتطلب أي تغيير في الكود لتطبيق منطق
إعادة المحاولة
على الاختبارات غير المستقرة أو المشكلة
يوصى بتخصيص بعض الوقت لتقييم الخيارات المتاحة. قد يكون الحل الهجين هو الأفضل لتوفير أفضل نتائج اختبار حقيقية وقابلة للتنفيذ.
التثبيت
أسهل طريقة هي إضافة wdio-rerun-service
إلى devDependencies
في ملف package.json
الخاص بك.
{
"devDependencies": {
"wdio-rerun-service": "^1.6.2"
}
}
يمكن تثبيتها باستخدام npm
:
npm install wdio-rerun-service
بعد اكتمال تثبيت الحزمة، أضفها إلى مصفوفة services
في wdio.conf.js
:
// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [RerunService, {
// ...
}]
};
يمكن العثور على تعليمات حول كيفية تثبيت WebdriverIO
هنا.
التكوين
يمكن إضافة الخيارات التالية إلى ملف wdio.conf.js. لتحديد خيارات للخدمة، تحتاج إلى إضافة الخدمة إلى قائمة services
بالطريقة التالية:
// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// خيارات خدمة إعادة التشغيل هنا...
}]
],
// ...
};
rerunDataDir
الدليل حيث سيتم الاحتفاظ بجميع بيانات JSON لإعادة التشغيل أثناء التنفيذ.
النوع: String
الافتراضي: ./results/rerun
مثال:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunDataDir: './custom-rerun-directory'
}]
],
// ...
}
rerunScriptPath
المسار لكتابة نص Bash لإعادة التشغيل.
النوع: String
الافتراضي: ./rerun.sh
مثال:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunScriptPath: './custom-path-for-rerun.sh'
}]
],
// ...
}
ignoredTags
(Cucumber فقط) مجموعة من علامات Cucumber لاستبعادها. إذا كان السيناريو يحتوي على علامة، فإن خدمة إعادة التشغيل ستتخطى التحليل.
النوع: Array
الافتراضي: []
مثال:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
ignoredTags: ['@known_bug']
}]
],
// ...
}
commandPrefix
البادئة التي سيتم إضافتها إلى أمر إعادة التشغيل الذي يتم إنشاؤه.
النوع: String
الافتراضي: ''
مثال:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
commandPrefix: "VARIABLE=true"
}]
],
// ...
}