Skip to main content

Overview

RIU Web App Automation is an end-to-end UI test automation framework built with Selenium 4, Cucumber 7, and TestNG in Java 21. It targets the RIU Hotels & Resorts website and validates critical user flows — starting with the membership registration form — using the Behavior-Driven Development (BDD) approach. The framework is designed to be readable, maintainable, and extensible: Gherkin feature files describe test scenarios in plain language, the Page Object Model (POM) encapsulates UI interactions, and Allure generates rich HTML reports after every test run.

Quickstart

Set up the project and run your first test in minutes

Architecture overview

Understand the layers: hooks, steps, pages, utilities

Writing tests

Learn how to write new Gherkin scenarios and step definitions

Allure reports

Generate and serve rich HTML test reports

Key features

Selenium 4

Uses Selenium 4’s built-in driver manager — no manual ChromeDriver download required

Cucumber BDD

Gherkin feature files make test scenarios readable by the whole team

Page Object Model

BasePage wraps every Selenium call with explicit waits, eliminating flakiness

PicoContainer DI

Dependency injection shares the WebDriver across all step classes safely

Allure reporting

Step-level HTML reports with screenshots, attachments, and BDD behavior tabs

Tag-based execution

Run only what you need with Cucumber tags such as @smoke

Technology stack

ComponentTechnologyVersion
LanguageJava21
Browser automationSelenium WebDriver4.18.1
BDD frameworkCucumber7.15.0
Test runnerTestNG7.9.0
Dependency injectionPicoContainer7.15.0
ReportingAllure2.27.0
Build toolMaven3.x
AOP weavingAspectJ1.9.21

What is tested

The current test suite covers the RIU Hotels user registration flow (https://www.riu.com/es):
  1. Navigate to the homepage and verify the page title
  2. Accept the cookie consent banner
  3. Open the “RIU pro” login/register modal
  4. Fill in the registration form — name, surname, email, country, gender, and legal consents — while intentionally skipping the birth date
  5. Submit the form and assert that the "Este campo es obligatorio." validation error appears for the birth date field
This validates that birth date is correctly enforced as a required field in the RIU registration flow.

Build docs developers (and LLMs) love