Service de Régression Visuelle Novus
wdio-novus-visual-regression-service est un package tiers, pour plus d'informations veuillez consulter GitHub | npm
Tests de régression visuelle pour WebdriverIO
Basé sur le travail de Jan-André Zinser sur wdio-visual-regression-service et wdio-screenshot
Installation
Vous pouvez installer wdio-novus-visual-regression-service via NPM comme d'habitude :
$ npm install wdio-novus-visual-regression-service --save-dev
Les instructions sur l'installation de WebdriverIO peuvent être trouvées ici.
Configuration
Configurez wdio-novus-visual-regression-service en ajoutant novus-visual-regression à la section service de votre configuration WebdriverIO et définissez votre stratégie de comparaison souhaitée dans les options de service.
// 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'],
}
]
],
// ...
};
Options
Sous la clé visualRegression dans votre wdio.config.js, vous pouvez passer un objet de configuration avec la structure suivante :
-
compare
Object
méthode de comparaison des captures d'écran, voir Méthodes de comparaison -
viewportChangePause
Number(par défaut : 100)
attendre x millisecondes après un changement de viewport. Il peut falloir un certain temps pour que le navigateur redessine. Cela peut entraîner des problèmes de rendu et produire des résultats incohérents entre les exécutions. -
viewports
Object[{ width: Number, height: Number }](par défaut : [viewport-actuel] ) (desktop uniquement)
toutes les captures d'écran seront prises dans différentes dimensions de viewport (par exemple pour les tests de design responsive) -
orientations
String[] {landscape, portrait}(par défaut : [orientation-actuelle] ) (mobile uniquement)
toutes les captures d'écran seront prises dans différentes orientations d'écran (par exemple pour les tests de design responsive)
Méthodes de comparaison
wdio-novus-visual-regression-service permet l'utilisation de différentes méthodes de comparaison de captures d'écran.