QASmartTestLab
QASmartTestLab
Overview
QASmartTestLab is a Cucumber (JVM) framework built on Selenium 4 and JUnit 5. Cucumber runs scenarios in parallel with a dynamic strategy, and each thread gets its own WebDriver through a ThreadLocal factory, so scenarios never share a browser. The same suite runs on a local Chrome (drivers managed by WebDriverManager) or on a remote Selenium Grid or Selenoid, chosen at runtime with a system property or environment variable. Page objects, step definitions, runners and support classes are kept apart; tags select what runs, and every run writes HTML, JSON and JUnit XML reports plus a console summary. Feature suites cover UI login and incoming and outgoing payment messages with XML validation fixtures.
Parallel Scenarios · Thread-Safe WebDriver
Local or Remote Grid/Selenoid Runs
4 Report Formats per Run
Page Object Model · Tag-Based Runs
Challenge & Solution
The Challenge
Test automation teams often struggle with framework complexity, poor maintainability, and lack of standardization across projects. Many frameworks become technical debt, difficult to understand for new team members, and hard to scale as the application grows.
The Solution
Built QASmartTestLab around a small set of clear rules: page objects for the UI, step definitions that only orchestrate, one WebDriver per thread, and configuration at runtime instead of in code. The suite switches between a local browser and a remote Grid with a single property, runs scenarios in parallel safely, and selects what to run with tags.
Key Features
Payment Flow Features
Cucumber suites for UI login and for incoming and outgoing payment messages, with XML validation fixtures per scenario.
Runtime Configuration
Local Chrome or a remote Selenium Grid/Selenoid, chosen with a system property or environment variable; WebDriverManager handles the drivers.
Clean Architecture
Page objects, step definitions, runners and support classes kept apart, each with a single responsibility.
Parallel Execution
Cucumber runs scenarios in parallel (dynamic strategy) with a ThreadLocal WebDriver per thread, so scenarios never share a browser.
Gallery
Technologies Used
Tags
Results & Impact
HTML, JSON, JUnit XML and a console summary from every run
Local Chrome or a remote Selenium Grid/Selenoid, switched without code changes
A thread-safe WebDriver lets Cucumber run scenarios concurrently