Giter Site home page Giter Site logo

Screenshot testing about yandex-ui HOT 4 CLOSED

bem avatar bem commented on August 16, 2024
Screenshot testing

from yandex-ui.

Comments (4)

sipayRT avatar sipayRT commented on August 16, 2024 1

Hermione as the Gemini for each test case load story by URL from scratch

this ensures test independence. In your case you can't give such a guarantee

so browser load all static assets

it's wrong - browser can reuse already downloaded static. just change your testsPerSession option

For us with ~2000 tests with Gemini + SauceLabs we run all tests around an hour

we can run about 30k tests for 5-10 minutes. It depends on your concurrency settings. Maybe you should do something with your storybook performance? I would like to see your hermione/gemini settings

But after we switched into Creevey all tests runs in around 10 minutes.

Your tool is aimed at a specific case for which you decided to write a separate tool. You claim that your tool is faster, but in fact you just removed the part (in my opinion, very important) of the logic that runs in hermione. But I think that you can do the same from hermione plugin ;)

Hermione good tool for e2e visual tests

hermione is not only about visual testing - you can write any types of browser-based testing

from yandex-ui.

sipayRT avatar sipayRT commented on August 16, 2024

it's faster

any proofs? can't find any benchmarks in docs

from yandex-ui.

wKich avatar wKich commented on August 16, 2024

It's pretty obviously, Hermione as the Gemini for each test case load story by URL from scratch, so browser load all static assets and initialize whole storybook bundle every time. So if you use BrowserStack or SauceLabs as we used in react-ui and if you don't have low latency and good bandwidth, it's be significant difference. For us with ~2000 tests with Gemini + SauceLabs we run all tests around an hour, I did small hack for Gemini, to don't refresh browser page for next test case and it goes to ~30 minutes. But after we switched into Creevey all tests runs in around 10 minutes.

It's not simple to get right benchmarks, because for Hermione you need write a lot boilerplate tests code. Or I could try to integrate Creevey into yandex-ui. And we could compare real numbers in real project.

Hermione good tool for e2e visual tests, but if you want to get unit-like visual tests like test your ui-kit with huge amount small test cases, you need to allow switch between fast as possible and don't waste time to write/maintenance test code. So Creevey helps with that.

from yandex-ui.

wKich avatar wKich commented on August 16, 2024

this ensures test independence. In your case you can't give such a guarantee

For React components you could simply unmount/mount components with fresh state. If your components has side effects and you need reload browser page, maybe you have something wrong with your components. If you manually open storybook and go through stories, you can see browser page not reloading every time then you switch story.

it's wrong - browser can reuse already downloaded static. just change your testsPerSession option

I didn't say, that new selenium session is starting for each test case, I said about your open new url every time then you start new test case. So yeah, browser could cache assets, but it compile js anyway.

It depends on your concurrency settings

Yeah, sure. I forgot to say, we have 6 parallel sessions.

But I think that you can do the same from hermione plugin ;)

What plugin you mean? It might be cool, if some plugin could generate tests in runtime from stories. So you don't need write all of that stuff explicitly.

you can write any types of browser-based testing

Creevey could do that as well :)

from yandex-ui.

Related Issues (10)

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.