خدمة انحدار بصري نوفوس
wdio-novus-visual-regression-service هي حزمة من طرف ثالث، لمزيد من المعلومات يرجى الاطلاع على GitHub | npm
اختبار الانحدار البصري لـ WebdriverIO
مبني على عمل Jan-André Zinser في wdio-visual-regression-service و wdio-screenshot
التثبيت
يمكنك تثبيت wdio-novus-visual-regression-service عبر NPM كالمعتاد:
$ npm install wdio-novus-visual-regression-service --save-dev
يمكن العثور على تعليمات حول كيفية تثبيت WebdriverIO
هنا.
الإعداد
قم بإعداد wdio-novus-visual-regression-service عن طريق إضافة novus-visual-regression
إلى قسم الخدمة في تكوين WebdriverIO الخاص بك وحدد استراتيجية المقارنة المطلوبة في خيارات الخدمة.
// wdio.conf.js
var path = require('path');
var VisualRegressionCompare = require('wdio-novus-visual-regression-service/compare');
function getScreenshotName(basePath) {
return function(context) {
var type = context.type;
var testName = context.test.title;
var browserVersion = parseInt(context.browser.version, 10);
var browserName = context.browser.name;
var browserViewport = context.meta.viewport;
var browserWidth = browserViewport.width;
var browserHeight = browserViewport.height;
return path.join(basePath, `${testName}_${type}_${browserName}_v${browserVersion}_${browserWidth}x${browserHeight}.png`);
};
}
exports.config = {
// ...
services: [
[
'novus-visual-regression',
{
compare: new VisualRegressionCompare.LocalCompare({
referenceName: getScreenshotName(path.join(process.cwd(), 'screenshots/reference')),
screenshotName: getScreenshotName(path.join(process.cwd(), 'screenshots/screen')),
diffName: getScreenshotName(path.join(process.cwd(), 'screenshots/diff')),
misMatchTolerance: 0.01,
}),
viewportChangePause: 300,
viewports: [{ width: 320, height: 480 }, { width: 480, height: 320 }, { width: 1024, height: 768 }],
orientations: ['landscape', 'portrait'],
}
]
],
// ...
};
الخيارات
تحت المفتاح visualRegression
في ملف wdio.config.js الخاص بك، يمكنك تمرير كائن تكوين بالهيكل التالي:
-
compare
Object
طريقة مقارنة لقطة الشاشة، انظر طرق المقارنة -
viewportChangePause
Number
( الافتراضي: 100 )
انتظر عدد x من الميلي ثانية بعد تغيير منفذ العرض. قد يستغرق الأمر بعض الوقت حتى يعيد المتصفح الرسم. يمكن أن يؤدي هذا إلى مشاكل في العرض وينتج نتائج غير متسقة بين التشغيلات. -
viewports
Object[{ width: Number, height: Number }]
( الافتراضي: [current-viewport] ) (للكمبيوتر فقط)
سيتم التقاط جميع لقطات الشاشة بأبعاد منفذ عرض مختلفة (مثلاً لاختبارات التصميم المتجاوب) -
orientations
String[] {landscape, portrait}
( الافتراضي: [current-orientation] ) (للموبايل فقط)
سيتم التقاط جميع لقطات الشاشة باتجاهات شاشة مختلفة (مثلاً لاختبارات التصميم المتجاوب)