Code Monkey home page Code Monkey logo

qa-screenshot-comparator's Introduction

QA Screenshot comparator


This handy tool gives us the possibility to generate and compare website screenshots for any resolution possible resolution.

npm version

Requirements

You need to have node version above 8 and bellow 10

Installation

  1. If you want to install the project as standalone application, clone the project and run npm install

  2. If you want to install the project as dependency of your application and use its API, run npm install qa-screenshot-comparator

Usage

Generating screenshots for resolution(s) via CLI

node src/app.js [options]
CLI Options
-h, --help
-v, --version

-u URL, --url
-s SIZE, --size
-f FOLDER, --folder
Examples

Generating screenshots for all resolutions

node src/app.js -u=http://example.com -s=all -f=first_website_folder

Generating screenshots for only for desktop

node src/app.js -u=http://example.com -s=desktop -f=first_website_folder

Generating screenshots for desktop and mobile

node src/app.js -u=http://example.com -s=desktop -s=mobile -f=first_website_folder

API

const {Generator} = require('qa-screenshot-comparator');

let generatorInstance = new Generator({
    url: <Required> [String: website url],
    resolutionName: <Required> [String|Array: resolution(s)], // Available options [ desktop, laptop, tablet, mobile, all ]
    runtime: <Required> [String: The path for the generation of screenshots],
    generateSitemap: <Optional - default: true> [Boolean: whether to generate sitemap for url],
    authParams: <Optional - default: {}> [Object: HTTP basic auth params],
    includeThumbnails: <Optional - default: false> [Boolean: whether to generate thumbnails for each image],
    thumbnailWidth: <Optional - default: 240> [Number: thumnail width in pixels],
    folderName: <Optional - default: automatically generated from url> [String: folder name],
    onUrlFound: function (data) { },
    onUrlFindError: function (data) { },
    onUrlFindFinish: function (data) { },
    onScreenshotGenerationStart: function (data) { },
    onScreenshotGenerate: function (data) { },
    onScreenshotCompare: function (data) { },
    onScreenshotGenerationFinish: function (data) { },
    onScreenshotThumbnailGenerate: function (data) { },
    onScreenshotThumbnailGenerateError: function (data) { }
});
generatorInstance.run();

authParams is an object with this template

let authParams = {
    HTTP_BASIC_AUTH: [Boolean: whether to run authentication],
    HTTP_BASIC_AUTH_USERNAME: [String: auth username],
    HTTP_BASIC_AUTH_PASSWORD: [String: auth password]
};

Here is the width of the generated screenshots for each resolution name

resolutionName pixels
desktop 1440px
laptop 1024px
tablet 768px
mobile 360px
Events Description Response object properties
onUrlFind Triggered on each url find event while generating site map
{
    foundUrlCount: [Number], 
    url: [String]
}
onUrlFindError Triggered on site map url generation error
{
    foundUrlCount: [Number], 
    url: [String],
    errorCode: [String],
    message: [String]
}
onUrlFindFinish Triggered when site map generation is finished
{
    foundUrlCount: [Number]
}
onScreenshotGenerationStart Triggered when screenshot generation starts for specific resolution
{
    foundUrlCount: [Number], 
    startIndex: [Number],
    urlsCount: [Number],
    urls: [Array],
    resolutionName: [String]
}
onScreenshotGenerate Triggered when each screenshot image is generated for specific resolution
{
    currentUrlIndex: [Number], 
    path: [String],
    resolutionName: [String]
}
onScreenshotCompare Triggered when existing screenshot is compared to newly generated image for specific resolution. newImage and stableImage will be only present if comparator found any changes.
{
    currentUrlIndex: [Number],
    url: [String],
    new: [String],
    stable: [String],
    resolutionName: [String],
    folderName: [String],
    stableImage: [String][Optional],
    newImage: [String][Optional]
}
onScreenshotGenerationFinish Triggered when screenshot generation is finished for specific resolution
{
    resolutionName: [String], 
    folderName: [String]
}
onScreenshotThumbnailGenerate Triggered when thumbnail is generated for a specific image
onScreenshotThumbnailGenerateError Triggered when thumbnail generation failed for a specific image

qa-screenshot-comparator's People

Contributors

saiat3 avatar thecodeholic avatar zura024 avatar guga-grigolia avatar

Stargazers

那罗虫 avatar  avatar Andria Toria avatar  avatar  avatar Levan Khvedelidze avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar

qa-screenshot-comparator's Issues

Size parameter

It would be better if we defaulted size to all and avoid entering it every time. @saiat3

Comparing

There is no information at all about comparison.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.