नोवस विज़ुअल रिग्रेशन सर्विस
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 को सेट करने के लिए अपने WebdriverIO कॉन्फिग के सर्विस सेक्शन में novus-visual-regression को जोड़ें और सर्विस ऑप्शन्स में अपनी वांछित तुलना रणनीति को परिभाषित करें।
// 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'],
}
]
],
// ...
};
विकल्प
अपने wdio.config.js में visualRegression कुंजी के अंतर्गत आप निम्नलिखित संरचना के साथ एक कॉन्फिगरेशन ऑब्जेक्ट पास कर सकते हैं:
-
compare
Object
स्क्रीनशॉट तुलना विधि, देखें तुलना विधियां -
viewportChangePause
Number( डिफॉल्ट: 100 )
व्यूपोर्ट परिवर्तन के बाद x मिलीसेकंड प्रतीक्षा करें। ब्राउज़र को पुनः पेंट करने में थोड़ा समय लग सकता है। इससे रेंडरिंग मुद्दे हो सकते हैं और रन के बीच असंगत परिणाम प्राप्त हो सकते हैं। -
viewports
Object[{ width: Number, height: Number }]( डिफॉल्ट: [current-viewport] ) (केवल डेस्कटॉप)
सभी स्क्रीनशॉट विभिन्न व्यूपोर्ट आयामों में लिए जाएंगे (जैसे रेस्पॉन्सिव डिज़ाइन परीक्षणों के लिए) -
orientations
String[] {landscape, portrait}( डिफॉल्ट: [current-orientation] ) (केवल मोबाइल)
सभी स्क्रीनशॉट विभिन्न स्क्रीन ओरिएंटेशन में लिए जाएंगे (जैसे रेस्पॉन्सिव डिज़ाइन परीक्षणों के लिए)
तुलना विधियां
wdio-novus-visual-regression-service विभिन्न स्क्रीनशॉट तुलना विधियों के उपयोग की अनुमति देता है।
VisualRegressionCompare.LocalCompare
जैसा कि इसके नाम से पता चलता है, LocalCompare आपके कंप्यूटर पर स्थानीय रूप से स्क्रीनशॉट कैप्चर करता है और उनकी तुलना पिछले रनों से करता है।
आप इसके कंस्ट्रक्टर को ऑब्जेक्ट के रूप में निम्नलिखित विकल्प पास कर सकते हैं:
-
referenceName
Function
एक फ़ंक्शन पास करें जो संदर्भ स्क्रीनशॉट के लिए फ़ाइलनाम लौटाता है। फ़ंक्शन पहले पैरामीटर के रूप में कमांड के बारे में सभी प्रासंगिक जानकारी के साथ एक context ऑब्जेक्ट प्राप्त करता है। -
screenshotName
Function
एक फ़ंक्शन पास करें जो वर्तमान स्क्रीनशॉट के लिए फ़ाइलनाम लौटाता है। फ़ंक्शन पहले पैरामीटर के रूप में कमांड के बारे में सभी प्रासंगिक जानकारी के साथ एक context ऑब्जेक्ट प्राप्त करता है। -
diffName
Function
एक फ़ंक्शन पा स करें जो अंतर स्क्रीनशॉट के लिए फ़ाइलनाम लौटाता है। फ़ंक्शन पहले पैरामीटर के रूप में कमांड के बारे में सभी प्रासंगिक जानकारी के साथ एक context ऑब्जेक्ट प्राप्त करता है। -
misMatchTolerance
Number( डिफॉल्ट: 0.01 )
0 और 100 के बीच एक संख्या जो परिभाषित करती है कि दो छवियों को समान मानने के लिए बेमेल की डिग्री कितनी होनी चाहिए, इस मान को बढ़ाने से परीक्षण कवरेज कम हो जाएगा। -
ignoreComparison
String( डिफॉल्ट: nothing )
तुलना विधि को समायोजित करने के लिएnothing,colorsयाantialiasingमान के साथ एक स्ट्रिंग पास करें।
वर्तमान परीक्षण नाम के आधार पर स्क्रीनशॉट फ़ाइलनाम जनरेट करने के उदाहरण के लिए, कॉन्फिगरेशन के सैंपल कोड को देखें।