Tests are divided into UI and API tests. Within those 2 categories below is specified what is tested in this project and what could be improved in the future.
Additional files
- This readme
- An installation script for all the required libraries to run the tests
- A pipeline script implementation that makes use of parallel testing, multiple browsers and rerunfailed
Simple run script to try the tests:
- robot -d logs . If you want to see the browsers:
- robot -d logs -v S_HEADLESS:False .
Only 1 browser is opened across a run, for efficiency. Tests however are always started with a new (clean) page for indepency's sake! An semi page-object model has been implemented to keep track of pages and related keywords and variables.
- Test for most of the components on the page
- Tests for most of the external links / buttons on the page
- Tests for login / logout functionality
- Test for most of the components on the page
- Tests for all individual builds and corresponding stats
- Tests for different values of names and error messages
- Test for most of the components on the page
- Tests for all individual games and corresponding results (message, level change and stat change)
- Test for completion of the game
- In general the id's are quite rare so the discussion with devs to improve on this would be nice :)
- The login / logout functionality is shallowly tested since this functionality does nothing
- More tests with input fields (like name) for special characters
- Randomization of the order that games are played in, and more coverage in general for the games
All API tests have been put into 1 test suite because the endpoint is the same one
Current tests
- good scenario, all builds
- good scenario, all builds individually (could be done randomly as well in 1 test)
- bad scenario, non existing build
Current tests
- good scenario, random build name, random valid stats
- bad scenario, existing name
- bad scenario, non existant stats
- Make test setup/teardown for session if you want to do more complex stuff
- Improved validations based on expected values for strength, magic, agility and wisdom or other fields
- For adding classes you could play around with more complex stat combinations
- Introducing 1 way of working with robocop/robotidy
- Adding an actual pipeline/git implementation
- Imports using pythonpath
- Using a toml file for environments (only if they are ever added)