For years, Selenium has been the go-to tool for automated browser testing, and for good reasons: it’s open source and free, has a large and active community, supports multiple browsers, platforms, and programming languages, and—perhaps most importantly—it’s familiar.
I was actually struggling recently with cypress integration to CI/CD.
I was able to optimize my e2e system test suite from 7 minutes to 10 seconds (so far in my experiment I managed to optimize around 10% of our test suite). I have mocked all the external dependencies (APIs, cloud resources, remote databases). I described it here:
Thank you for this post.
I was actually struggling recently with cypress integration to CI/CD.
I was able to optimize my e2e system test suite from 7 minutes to 10 seconds (so far in my experiment I managed to optimize around 10% of our test suite). I have mocked all the external dependencies (APIs, cloud resources, remote databases). I described it here:
https://open.substack.com/pub/maxpiechota/p/introducing-twin-stubs-for-integration?utm_source=share&utm_medium=android&r=2jrq6c
So my system was able to go through the user journey within few seconds.
It was great for optimizing Lead Time to Change metric.
But that was possible ONLY for the API tests.
When I wanted to employ our UI tests (with Cypress) it turned out impossible.
System route handler was responding in a fraction of second but the html rendering for cypress was taking seconds.
So the whole test from 10 seconds grew back to minutes.
And parallelization wasnt an option too, because the CI machine was blowing up having only 10 parallel cypress tests.
You mention using selenium on CI. Any insights on how to do it so the full test suite doesnt take hours?