About the Presentation
Fast E2E Testing Using Cypress For Free
Unit testing is simple, yet it only checks small pieces of code. End-to-end testing of real web applications can potentially find a lot more problems across the entire stack. Yet E2E tests are delegated to the very tip of the testing pyramid – because the tools for controlling a large application inside a real browser are brittle, and the development experience is a mixed bag. But now we have new great tools for reliable browser automation: Cypress.io and Playwright. Both tools allow quickly writing hundreds of end-to-end, component, and even API tests. Now we have a problem: how do we run all these tests quickly when we work locally or on CI? In this presentation, Gleb will explain how to speed up Cypress test execution locally and on CI using free open-source solutions that do not require paying for 3rd party dashboards or services. We will explore using API calls, data caching, and app actions to speed up each test. We also will see how to configure CI specs to split the entire test suite into multiple machines running in parallel. This presentation will benefit anyone who wants their end-to-end and component Cypress tests to finish quickly.
About the Tutorial
Web Application Testing With Cypress And Playwright
We are truly living in the golden age of web testing automation. Cypress and Playwright are the current two top tools for writing end-to-end web tests. Both tools are capable of great things, but their architectures are very different, and thus they can shine when solving different problems. By coding up solutions to the test exercises you can get a sense of what it takes to write E2E, component, and even API tests. Everyone looking to test their web apps would benefit from this hands-on workshop.
Please bring your own laptop with Git and Node.js installed
Takeaways:
– practice writing web tests using Cypress and Playwright
– understand how to write reliable tests
– learn how each test runner solves the network testing problem
– control the test data before each test
– be able to run both tests on CI
– understand how to write reliable tests
– learn how each test runner solves the network testing problem
– control the test data before each test
– be able to run both tests on CI
I would recommend this workshop to anyone looking to have practical skills they can apply every day to web testing
The workshop breakdown:
– Testing using Cypress and Playwright (60 minutes)
*** Installing the test runners
*** Where to find help
*** Main Cy and Pw commands
*** Starting application before running tests
*** Cy and Pw GUI mode for writing tests, writing an example test
– Writing TodoMVC tests using Cy and Pw (90 minutes)
*** adding an item
*** completing an item
*** deleting an item
*** reset the data before the test
*** clear completed todos
– Assertions and retries (45 minutes)
*** adding custom assertions to Cy and Pw
*** Cypres `should(callback)` assertions
*** Cypress chains of queries
*** confirm the table is sorted after a time delay
– Spying and stubbing network calls (45 minutes)
*** spy and stub loading the data
*** spy on adding new items
*** testing loading elements and slowing down the network calls
– Checking application data from tests (45 minutes)
*** access the application data store object
*** calling application methods from tests
– Running tests on CI (30 minutes)
*** using GitHub Actions as an example
– Advanced features (remaining time)
*** test isolation mode
*** fail the test on application error
*** control application timers and clock
*** using 3rd party plugins and reporters
*** Q & A
*** Installing the test runners
*** Where to find help
*** Main Cy and Pw commands
*** Starting application before running tests
*** Cy and Pw GUI mode for writing tests, writing an example test
– Writing TodoMVC tests using Cy and Pw (90 minutes)
*** adding an item
*** completing an item
*** deleting an item
*** reset the data before the test
*** clear completed todos
– Assertions and retries (45 minutes)
*** adding custom assertions to Cy and Pw
*** Cypres `should(callback)` assertions
*** Cypress chains of queries
*** confirm the table is sorted after a time delay
– Spying and stubbing network calls (45 minutes)
*** spy and stub loading the data
*** spy on adding new items
*** testing loading elements and slowing down the network calls
– Checking application data from tests (45 minutes)
*** access the application data store object
*** calling application methods from tests
– Running tests on CI (30 minutes)
*** using GitHub Actions as an example
– Advanced features (remaining time)
*** test isolation mode
*** fail the test on application error
*** control application timers and clock
*** using 3rd party plugins and reporters
*** Q & A