Of Plugins and Decorators - trivago's e2e test framework in the spotlight

Abstract

Most often, test frameworks are developed from scratch and gradually extended with the required functionality. This approach is perfectly normal, but carries the risk of creeping technical debt as well as poor maintainability, transparency and extensibility. These risks can be minimized by using clean software architecture.

In this talk, I will present two key parts of our internal Selenium-based end-to-end testing framework, which has been successfully used to test multiple web projects using desktop and mobile browsers during the past five years:

  1. the plugin infrastructure using Java's Service Provider Interface
  2. the custom WebElement decorator that enables more resilient Selenium WebElements

I will explain the rationale for using these architectural tools and how these approaches mean that we can still evolve this framework quickly and easily to meet new needs.

Takeaways

  • Learn how we solved common test framework problems by using core Java and Selenium capabilities
  • See how research and deep-diving into tech internals can be very beneficial
  • Get ideas on how to make your framework more generic and maintainable

Slides

© Benjamin Bischoff