the-internet-tests

Java Selenium TestNG stack

Java implementation of The Internet UI scenarios using Selenium WebDriver, TestNG, Maven, and Surefire reports.

Prerequisites

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.

Run locally

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

Optional local Selenium Grid

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

Cloud Grid placeholders

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.

Reports

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.

Current scenario coverage