A web automation testing framework written in Java. Support Chrome, Firefox
- Dependencies injection using Guice
- Ensure mechanism
- Thread-safe driver instances
- Support different types of execution against local, pipeline or container
- ReportPortal integration
- Docker-ready files for easy CI/CD integration
- Maven
- TestNG
- Logback
- WebDriverManager
- ExtentReport
- Docker
- Guice
- ReportPortal
ReportPortal
The framework export RUNWHERE environment variable for use in different cases. Different RUNWHERE used will change desired capabilities accordingly
RUNWHERE | Description |
---|---|
LOCAL | Desired capabilities for execution on local machine |
PIPELINE | Desired capabilities for execution on a automation pipeline |
CONTAINER | Desired capabilities for execution on Docker |
By default, ReportPortal (RP) integration is disabled. Setup your RP properly first and then change RP settings in src/test/resources/reportproperties.properties
file
As told, RUNWHERE will determine the desired capabilities against the browser under test. Example below expose RUNWHERE environment variable as LOCAL Execute maven command and pass in the browser's name. If RP is enabled, it will send results to the server.
export RUNWHERE=LOCAL
# Parallel executions on Chrome and Firefox
mvn clean test
By default docker-compose file will roll up Selenium Grid automatically, and run the tests in vinh/framework-docker
container
vinh/framework-docker
is a custom container which is achived by below command
# Build dockerfile using vinh/
docker build -t=vinh/framework-docker .
You cange the tag's name after -t
to whatever you want but ensure to change it consistently in docker-compose also
No need to export RUNWHERE=container. The commands in docker-compose has already done it for you.
Execute docker-compose command
docker-compose up -d
Moreover, scale up of Chrome/Firefox nodes is possible using docker-compose command. Refer to Docker guide for more details