garris / BackstopJS

Catch CSS curve balls.
http://backstopjs.org
MIT License
6.7k stars 604 forks source link

Backstopjs is not properly comparing photos! #1584

Open AndreiGorea opened 1 week ago

AndreiGorea commented 1 week ago

I've noticed for some time that backstop doesn't compare pictures well, for example if we have a field with some data in it like the date and we do a test and remove this date with removeSelector Backstop won't see this change. Before about 2 weeks ago Backstop was noticing this change.

What would be the problem?

I use misMatchThreshold": 0.1

garris commented 1 week ago

If the screenshot is very large you may need to use a smaller ratio.

AndreiGorea commented 1 week ago

Hi, thanks for a quick reply @garris but the problem is not with the ratio, because I didn't make any changes to the tests that a ran before.

I will show you an example:

This is my scenario array from backstop.json

"scenarios": [

{"misMatchThreshold": 0.1,"requireSameDimensions": true,"postInteractionWait": 1000,"label": "Dashboard Page","url": "https://dxnet-test-de.crossinx.com/crossnet/en_DE_xchannel/layouts/finx/common/welcome","waitForSelector": "fa fa-power-off, .fa-power-off","removeSelector": "#selectvalue ","hideSelectors": [".d-flex > small:nth-child(1) > strong:nth-child(1), [class='horizontalbarchart-container']"],"delay": 1000}

],

I have this reference photo:

ref-image

And I made a test and I have this test photo:

test-image

Obviously there is a difference, in test photo we don't have data in the fields

But backstopjs in html report tells that test is passed and there are no changes!

backstop-comparing

Maybe there were made some changes to backstop? It's a strange and new behaviour.

garris commented 1 week ago

There were somewhat recent changes that might have interacted. https://github.com/garris/BackstopJS/pull/1558

Maybe that?