When I joined Cargoo AG in late 2020 I was presented with a 2 year old fragile test suite dying in maintenance hell and built on top of a click & record framework. Tests were hard to create, much harder to update. Test runs happened on a single Windows machine at night and were not connected to releases. While technically written in Python the code was barely readable and non refactorable. After 3 years of development I'm happy with what we have instead:
- A Python framework built on top of pytest and using requests library for API testing and Playwright for UI testing
- A pure Python OOP DSL
- Fluent interfaces
- Colorful logs and reports
- No Gherkin or Cucumber, still business friendly
- Dozens of pipelines with quick(ish) feedback
- Modular, refactorable, well maintainable code
- Response validations
- Visual comparisons
- Ability to run against DevBoxes/SandBoxes
- Performance monitoring in Grafana
- Code reviews and Pull Requests culture
I want to share my journey of prototyping, onboarding and incrementally building this framework, share my guiding principles I accumulated in test automation since 2008. Last but not least, share some of the cool features available out of the box or within a hand's reach.
Key takeaways:- Guideline for a modern end-to-end framework
- Advice on onboarding 15 test engineers from a click & record to proper OOP test automation
- List of ideas and tools that implement mentioned framework features