Bobcat is an automated testing framework for functional testing of web applications. It wraps Selenium, so anything possible in raw Selenium can be done with Bobcat, including running it on all supported browsers, Selenium Grid, cloud providers like SauceLabs, Cross Browser Testing, BrwoserStack etc. You can also utilize Appium for mobile testing. Bobcat comes with a handy set of utilities and accelerators that will help you develop your tests faster.
Bobcat is implemented in Java and allows the test development in pure JUnit or via Cucumber-JVM for BDD-oriented people.
To start your adventure with Bobcat, please refer to our documentation: Getting started
Since Cognifide expertises in development on top of Adobe Experience Manager (AEM), Bobcat accelerates test development for this platform, especially when it comes to AEM authoring. The framework provides dedicated modules which allow you to automate almost every action on the AEM author side. This includes:
- Site Admin,
- component fields,
Bobcat was used for automating AEM 6.3, though the latest versions of AEM-related modules were not developed for full compatibility of TouchUI interface - let us know if you run into any issue or want to submit a pull request.
Bobcat 2.0 is coming!
A high level roadmap (milestones still can change), without any concrete deadlines of what we plan for 2.0 release:
Milestone #1 (1.4.0)
- Archetype cleanup and move to a Gradle-based template
- Selenium version bump
- Simplify Bobcat configuration
Milestone #2 (part of it may end up in 1.x.x)
- Switch to Gradle from end-user side
- Reporting revamp
- JUnit 5 support
- General refactoring, part 1
- some parts of API might disappear in the future
- some modules may end up without further support
- hence the above, we will identify and deprecate the API to be removed in 2.0 release
- last 1.x.x release
✔️(though, there might be additional bugfix releases in the meantime)
Milestone #3 - in progress!
- Provide a simpler API for Bobcat users
- Brand new API for AEM support
- General refactoring, part 2
- remove the deprecated APIs
- after the above is done, 2.0 release
Other ideas / nice-to-haves
- move development from Maven to Gradle
😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼 😼
What's so special about Bobcat?
We created this framework at Cognifide after years of experience with multiple simpler solutions. After reaching a certain point of maturity, we have decided it was time for a tool developed properly, by bringing the knowledge of both our QA engineers and developers. We wanted our framework to be maintainable, stable and scalable.
Bobcat relies heavily on the Page Object pattern, which is an embedded concept in most of its internals. We can model our websites easily and create a neat Page Object tree structure, scoping Page Objects inside other Page Objects, reducing the effort of selector maintenance. You can read more about it here. We make all the magic possible thanks to dependency injection with Google's Guice. Additionally, we wanted to make it as scalable as possible, so thread-safety was one of the key principles during the development.
You can help make Bobcat more awesome by raising any encountered issues or feature requests here on Github. For any questions, please contact us on Gitter or via email. See our contribution guidelines for more details.
Bobcat is licensed under Apache License, Version 2.0 (the "License")
You might also want to check latest Bobcat API docs.