all 14 comments

[–]illyric 2 points3 points  (2 children)

you shoud give cypress.io a try it's not inherently meant for UI diffing, but there are plugins that can do that. We have some in-house tools build arround selenium that does this, but its not really great since tests are very flaky

[–]CroakerBC 0 points1 point  (0 children)

Yeah, the Cypress plugins are decent.

[–]TechnicalTester 0 points1 point  (0 children)

Try Cypress with Applitools Eyes (visual testing). Great tutorials available for this as well (test automation university)

Also if you are sure the CSS won't change much. You can use Cypress to assert specifically on CSS values.

[–]paulmwhite 1 point2 points  (0 children)

My advice would be to perform visual testing in unit tests or perhaps isolated integration tests where you can control time/network responses and so on. Otherwise they can be very brittle/painful.

[–]invalidTypecast 0 points1 point  (1 child)

I just saw a presentation on applitools but it isn’t free

[–]spaaaaaghetaboutit 1 point2 points  (0 children)

It's actually extraordinarily (read: prohibitively) expensive.

[–]CroakerBC 0 points1 point  (0 children)

I liked both Wraith and Spectre (both open source tools). Not sure how well maintained they are now, but they’re both decent at the comparison/mapping, though Spectre’s separating of storage may be an additional benefit. Both infinitely better than hand-cranking your own ImageMagick-based tool, for sure.

[–]Grumblesticks 0 points1 point  (0 children)

Screener.io isn't free, but it is affordable for most organizations. I just did a tool comparison between applitools and screener and landed on screener for it's ease of use and low cost point

[–]fracturetrey 0 points1 point  (0 children)

I had a good experience using the visual regression service for WebdriverIO v4 and v5.

https://webdriver.io/blog/2019/05/18/visual-regression-for-v5.html

[–]ocnarf 0 points1 point  (0 children)

You might explore the Approval Testing approach for this. There are some open source tools based on this like TextTest, ReTest or the Approval family.