- selenium-java - Web Automation
- testng - Unit Testing
- webdrivermanager - Driver manager
- extentreports - Reporting
- assertj-core - Assertions
- jackson-databind - Work with Json files
- jackson-core - Work with Excel files
- commons-io - Work with Excel files
- poi-ooxml - Work with Excel files
- poi-ooxml-schemas - Work with Excel files
- poi-scratchpad - Work with Excel files
- poi - Work with Excel files
- commons-email - Work with Excel files
- rest-assured - Send results to ELK
- /.github - runs github actions
- /extent-test-output - contains extent reports
- docker-compose.yaml - runs tests in docker container using selenium grid in chrome and firefox browsers, sends results to ElasticSearch and visualize in Kibana
- pom.xml - contains all necessary dependencies and uses maven as a build tool
- testng.xml - contains information regarding tests suites, included tests, listeners, thread count and level of parallel execution
- .gitignore - ignores files from adding to git repository
- /src/test/java/pages - contains common methods to interact with pages and uses POM design pattern classes for each Web Page
- /JQMax/src/test/java/tests - contains written tests
- /src/test/resources/excel - data provider and tests management lists for Data-Driven Testing
- /src/test/resources/config - contains preferences for test execution (currently using config.properties)
- /src/main/java/annotations - custom @Framework Annotation that contains author and category information
- /src/main/java/constants - framework constants, getters and setters
- /src/main/java/driver - ThreadLocal driver and methods to initialize and quite driver
- /src/main/java/enums - enums to work with config.properties, waiting strategies for synchronization and category types of tests for @FrameworkAnnotation
- /src/main/java/exceptions - custom exceptions
- /src/main/java/factories - factories to configure driver based on local/remote and chrome/firefox conditions, explicit wait factory to configure synchronization strategy to check if element is clickable/present/visible/nono
- /src/main/java/listeners - listeners that based on the test results, retry strategy, data provider manager
- /src/main/java/reports - ThreadLocal extent report, its configuration and logger
- /src/main/java/utils - utility methods that are used across the framework
- In /src/test/resources/config/config.properties set:
runmode=local
;sendresultstoelk=no
; - Make sure test classes are included in testng.xml in <classes> </classes> tag
- In testdata.xlsx include test names on "RUNMANAGER" tab under "testname" column. Define "testdescription", "execute", "priority", "count" fields
- In testdata.xlsx include test names on "DATA" tab and populate fields with necessary data for execution
- In terminal from project folder run command
mvn clean test
- Results will be opened in the new browser tab
NOTE: For parallel execution change parameters in testng.xml for data-provider-thread-count="1" and thread-count="1" to desired
-
In /src/test/resources/config/config.properties set:
runmode=remote
;sendresultstoelk=yes
; -
Make sure test classes are included in testng.xml in <classes> </classes> tag
-
In testdata.xlsx include test names on "RUNMANAGER" tab under "testname" column. Define "testdescription", "execute", "priority", "count" fields
-
In testdata.xlsx include test names on "DATA" tab and populate fields with necessary data for execution
-
Open Docker
-
Run
docker-compose -f docker-compose.yaml up
-
In terminal from project folder run command
mvn clean test
-
To check runs is Selenium Grid - navigate to URL Open Selenium-Grid
-
To check results in Kibana - navigate to URL Kibana -> Stack Management -> Index Patterns and create index patter for "regression"
-
To create visualizations navigate to "Visualize Library" and create diagrams
NOTE: For parallel execution change parameters in testng.xml for data-provider-thread-count="1" and thread-count="1" to desired