Keynote: Testing Modern Web Apps Like a Champion with Andrew Knight

"Learn how to test modern web apps like a champion with Andrew Knight, covering key topics such as building fast feedback loops, using open-source tools, and automating testing and deployment with CI/CD."

Key takeaways
  • Focus on building fast feedback loops, not just building tests.
  • Use open-source tools like Playwright, Selenium, and Cypress for testing.
  • Playwright is a fast and efficient browser automation tool.
  • Selenium is a popular and widely-used browser automation tool.
  • Cypress is a fast and efficient browser automation tool that can also test APIs and components.
  • Use fixtures to set up and tear down test environments.
  • Use page objects to interact with web pages.
  • Use pytest as a test framework.
  • Use Locust for load testing.
  • Use PACT for contract testing.
  • Use CI/CD to automate testing and deployment.
  • Testing is hard, but it’s worth it to ensure quality and reliability.
  • Use a pyramid approach to testing, with unit tests at the bottom and UI tests at the top.
  • Use abstract testing for microservice meshes.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for writing tests.
  • Use Locust’s @before and @after hooks to set up and tear down test environments.
  • Use PACT’s @before and @after hooks to set up and tear down test environments.
  • Use CI/CD to automate testing and deployment.
  • Use open-source tools like TAU for testing and automation.
  • Use HTMX for dynamically interactable web pages.
  • Use pytest fixtures to set up and tear down test environments.
  • Use Playwright’s browser context to create incognito sessions for testing.
  • Use Selenium’s WebDriver protocol to automate browser interactions.
  • Use Cypress’s API to test APIs and components.
  • Use pytest’s arrange-act-assert pattern for