Status: 5% complete
This is an end-to-end test automation framework. Its approach is deliberately very programmatic in nature.
In this project, there is an example application, one with REST APIs, but we will also create a frontend for it.
The command-line commands will be explained for Linux and macOS. If you are a Windows user, we recommend that you install WSL and use it for this project.
Please take a look at these sub-readmes:
- show how selected open source tools can be chosen to create a useful test automation tool
- be an example of a programmatic approach to automation
- illustrate some newer technologies if they are better than previous ones
- demonstrate helpful techniques regarding test automation and the tooling for it
- serve as an initial template for a new test automation tool
- try out new libraries and approaches
- use it as a reference to craftsmanship
- test report generation
- behavior-driven development by using annotations
- running only certain groups of tests
- parallel test execution
- configuration via property files
- logging and capturing log output from dependencies
- data-driven testing with partly random input test data
- unit tests
- integration tests
- end-to-end tests, with REST APIs and web application tests (TODO)
- load tests
It might change, but this is currently not planned:
- building project by a CI/CD system
- integration with Elasticsearch.
- test automation for mobile apps
If you are using this project from IntelliJ, the suggested 3rd party plugins are:
- SonarLint
- GitToolbox
- Grep Console
- Rainbow Brackets
- JSON Sorter
./gradlew test -PincludedTags=architecture
Check which versions of the dependencies can be updated from time to time with the gradle-versions-plugin:
./gradlew dependencyUpdates -Drevision=release