Java implementation of The Internet UI scenarios using Selenium WebDriver, TestNG, Maven, and Surefire reports.
Selenium Manager provisions browser drivers automatically through Selenium. WebDriverManager is a common alternative worth comparing when learning the ecosystem, but this stack does not need it at runtime.
Start The Internet demo app from the repository root:
docker compose -f docker/compose.yml up -d website
Run the suite:
mvn test
Stop the app:
docker compose -f docker/compose.yml down
The retired ./run script previously bundled app startup, Grid startup, and Maven execution. Docker Compose now owns local containers, while Maven stays the test entrypoint.
The Grid services are pinned to the same Selenium image digests used by the Nightly Grid workflow, so local reproduction and scheduled CI exercise the same browser-node family.
Start the app plus local Grid from the repository root:
docker compose -f docker/compose.yml -f docker/compose.grid.yml up -d
Run against the Grid:
mvn -P CLI_Parameters test \
-DsuiteXmlFile=src/test/resources/regression.xml \
-Dbrowser=remote-chrome \
-DbrowserVersion= \
-DheadlessBrowser=true \
-DuseSeleniumGrid=true \
-DtestsThreadCount=1 \
-DtestRunnerAddress=http://website:5000 \
-DwebAppAddress=http://localhost:7080 \
-DseleniumGridAddress=http://localhost:4444/wd/hub
Stop all Compose services:
docker compose -f docker/compose.yml -f docker/compose.grid.yml down
The suite has one remote-driver seam: -DseleniumGridAddress=<remote-webdriver-url> with -DuseSeleniumGrid=true. Keep provider credentials outside the repository and inject them only in a private runner or a maintainer-approved workflow secret. No cloud secret is required for the checked-in Nightly Grid job; it uses the local Compose-equivalent Grid services above.
Surefire output is written to:
target/surefire-reports/
CI stages the XML files under artifacts/java/<run-id>/<slice>/surefire-reports/ before uploading each Java workflow artifact. Allure is intentionally deferred until it can stay low-friction beside Surefire.