The badge colors follow a consistent scheme to help you quickly understand the type of information:
-
π’ Green/Bright Green - Success states, passing tests, positive metrics
brightgreen: Test counts, BDD frameworks (Cucumber)green: Runtime environments (Node.js)success: Code quality tools
-
π΅ Blue - Technology stacks, frameworks, and tools
- UI testing frameworks (Cypress, Playwright, Robot Framework, Selenide, Selenium, Vibium)
- Testing frameworks (JUnit, TestNG, Vitest)
- Build tools (Maven)
- Infrastructure (Docker, Security)
- API tools (Gatling, JMeter, Locust, REST Assured)
- Languages (TypeScript)
-
π Orange - Core languages and reporting
- Primary languages (Java, JavaScript, Python, TypeScript)
- Test reporting (Allure)
-
π‘ Yellow - Categories, groups, and licenses
- Framework categories (Performance, UI Frameworks, Testing Frameworks)
- License information (MIT)
A comprehensive Selenium-based test automation framework supporting 30+ test suites across multiple domains including Google, Microsoft, LinkedIn, Vivit, BTS, and more. Built with enterprise-grade security, modern dependencies, and Page Object Model architecture.
- Badge Color Guide
- Features
- Quick Start
- Prerequisites
- Installation
- Configuration
- Running Tests
- Project Structure
- Test Suites
- Architecture
- Documentation
- Contributing
- Security
- License
- π― 200 Test Scenarios - UI (194) + API (6)
- π REST API Testing - REST Assured 6.0.0 for API automation
- π Extended Coverage - Data-driven, negative tests, advanced features
- π Secure Credential Management - Google Cloud Secret Manager integration (0 hardcoded passwords!)
- β‘ Smoke Test Suite - Fast critical path verification in < 2 minutes
- π Parallel Execution - Native parallel test support (3-5 threads)
- π Multi-Browser Support - Chrome, Firefox, Edge with Selenium Grid
- π Beautiful Reports - Allure reports with automatic screenshot capture
- π³ Fully Containerized - Docker + Docker Compose with 3 environments
- π€ CI/CD Automated - GitHub Actions pipeline with fail-fast smoke tests
- π¨ Page Object Model - Clean, maintainable test architecture
- πΈ Visual Evidence - Screenshots on test failures only
- π§ͺ Professional Testing - Log4j 2, Allure, TestNG, REST Assured, Vitest
- Java 21 - Latest LTS version
- Python 3.13 - Latest stable version (for Robot Framework & Locust)
- Node.js 20 - JavaScript runtime (for Cypress & Playwright)
- TypeScript 5.9.3 - Type-safe JavaScript (for Cypress & Playwright)
- Selenium 4.40.0 - Modern WebDriver API with Grid support
- Playwright 1.57.0 - Fast and reliable end-to-end testing
- Cypress 15.8.1 - JavaScript end-to-end testing framework
- Robot Framework 2.1.0 - Keyword-driven test automation
- REST Assured 6.0.0 - REST API testing & validation
- Cucumber 7.33.0 - BDD framework with Gherkin
- TestNG - Advanced test framework with data providers
- Log4j 2.25.3 - Professional structured logging (updated via Dependabot PR #52)
- Maven 3.9.11 - Build management (wrapper included!)
- Docker & Docker Compose - Complete containerization
- Allure3 CLI 3.0.0 (configurable), Allure2 Java 2.32.0 - Beautiful test reporting with screenshots (configurable via
config/environments.json) - GitHub Actions - Automated CI/CD pipeline
- Google Cloud Secret Manager - Enterprise-grade security
- WebDriverManager 6.3.3 - Automatic driver management
- β Performance Integration - Re-targeted 100% of performance tests to hit internal app services (ports 8003/3003).
- β Stability & Gating - Implemented Fail-Fast Barrier Propagation across all 7 stages of the CI/CD pipeline.
- β Unified Performance Suite - Integrated Locust, Gatling, and JMeter into every environment stage (DEV/TEST).
- β Next.js Stability - Optimized internal routing for IPv6 compatibility with Next.js dev servers.
- β
Automation Scaling - Automatic performance smoke checks on every push to
main.
# 1. Clone the repository
git clone https://github.com/CScharer/full-stack-qa.git
cd full-stack-qa
# 2. Start Selenium Grid
docker-compose up -d selenium-hub chrome-node-1
# 3. Run tests with beautiful Allure reports
./scripts/generate-allure-report.sh
# That's it! Tests run in Docker, report opens automatically! π# 1. Clone the repository
git clone https://github.com/CScharer/full-stack-qa.git
cd full-stack-qa
# 2. Authenticate with Google Cloud (for password retrieval)
gcloud auth application-default login
gcloud config set project cscharer
# 3. Copy configuration templates
cp xml/Companies.xml.template xml/Companies.xml
cp xml/UserSettings.xml.template xml/UserSettings.xml
# 4. Run tests (Maven wrapper included - no Maven install needed!)
./mvnw clean test
# Or use helper script
./scripts/run-tests.sh Scenarios chromeThat's it! The framework will automatically fetch passwords from Google Cloud Secret Manager.
- Java 21+ - Download JDK
- Google Cloud SDK - Install gcloud
- Git - For version control
- Node.js 20+ - Download Node.js (for Cypress & Playwright)
- Python 3.13+ - Download Python (for Robot Framework & Locust)
- Docker & Docker Compose - For containerized execution
- IDE - IntelliJ IDEA, Eclipse, or VS Code
- Pre-commit - Already configured (install with
pip install pre-commit)
This project includes Maven Wrapper (./mvnw), so you don't need to install Maven separately.
git clone https://github.com/CScharer/full-stack-qa.git
cd full-stack-qa# Authenticate
gcloud auth application-default login
# Set project
gcloud config set project cscharer
# Verify you can access secrets
gcloud secrets versions access latest --secret="AUTO_BTSQA_PASSWORD"# Copy template files to create working configurations
cp xml/Companies.xml.template xml/Companies.xml
cp xml/UserSettings.xml.template xml/UserSettings.xml
cp Configurations/Environments.xml.template Configurations/Environments.xml# Compile project
./mvnw clean compile test-compile
# Should see: BUILD SUCCESS β
Git hooks are automatically maintained via a post-checkout hook that runs on every git checkout.
What gets installed:
- Pre-commit hook: Formats code automatically (20-40 seconds, no compilation/validation)
- Pre-push hook: Formats, compiles, and validates code before push (30-60 seconds)
- Post-checkout hook: Ensures hooks are installed and up-to-date on every checkout
How it works:
- One-time setup: Run
./scripts/install-git-hooks.shonce after cloning (installs all hooks including post-checkout) - Automatic maintenance: The post-checkout hook ensures all hooks are installed and up-to-date on every checkout
- No ongoing manual steps: Once installed, hooks are automatically maintained
First-time setup (required once per clone):
# After cloning, install hooks once:
./scripts/install-git-hooks.sh
# After that, hooks are automatically maintained on every checkout!Why one-time setup?
Git hooks live in .git/hooks/ which isn't tracked by Git (for security). The post-checkout hook maintains everything automatically after the initial install, but it needs to be created first.
- Pre-commit (formatting only):
- Code is formatted (Prettier + Google Java Format) - on commit
- Unused/duplicate imports are removed (Spotless) - on commit
- Auto-fixed files are staged automatically
- Pre-push (all validation):
- Code quality is verified (Checkstyle, PMD) - on push
- Code compiles successfully - on push
- Node.js, TypeScript, GitHub Actions, Shell scripts, and Security checks - on push
Manual Installation (if needed): If hooks aren't auto-installed, you can manually run:
./scripts/install-git-hooks.shNote: You can bypass hooks with --no-verify (not recommended):
git commit --no-verify- Skip pre-commit hookgit push --no-verify- Skip pre-push hook
# Run the automated formatting script manually before every commit
./scripts/format-code.sh
# This script:
# - Removes unused/duplicate imports (Spotless)
# - Formats code and sorts imports (Prettier)
# - Fixes line length issues (Google Java Format)
# - Verifies code quality (Checkstyle, PMD)
# - Ensures compilation worksformat-code.sh manually before every commit to maintain code quality and ensure zero violations.
pip install pre-commit
pre-commit installAll passwords are securely stored in Google Cloud Secret Manager. The framework automatically retrieves them at runtime.
Secrets are organized as:
- Application passwords:
AUTO_*_PASSWORD - Company accounts:
AUTO_COMPANY_*_PASSWORD - Test credentials:
AUTO_TEST_*,AUTO_SAUCELABS_*
View your secrets:
gcloud secrets list | grep AUTOConfigure test execution in Configurations/Environments.xml:
- Browser selection (Chrome, Firefox, Edge)
- Timeouts (page, element, alert)
- Grid settings (local vs remote)
- Logging options
See Configurations/README.md for details.
REQUIRED: Always format your code before running tests or committing:
./scripts/format-code.shThis ensures:
- β Code is properly formatted
- β Imports are sorted correctly
- β Line length violations are fixed
- β Code quality standards are met
Fast critical path verification before committing:
# Run smoke tests (5 critical tests)
./scripts/run-smoke-tests.sh
# Or with Docker directly
docker-compose up -d selenium-hub chrome-node-1
docker-compose run --rm tests -Dtest=SmokeTests
docker-compose downWhat it does:
- β Verifies Grid connection
- β Tests basic navigation
- β Checks search functionality
- β Validates form interaction
- β Fast feedback (< 2 min vs 15+ min full suite)
Comprehensive testing with data-driven, negative, and advanced tests:
# Run all extended tests
docker-compose up -d selenium-hub chrome-node-1
docker-compose run --rm tests -DsuiteXmlFile=testng-extended-suite.xml
docker-compose downWhat it includes:
Data-Driven Tests (19 scenarios):
- β Multiple search queries (5 data sets)
- β Website accessibility (5 sites)
- β Edge case inputs (4 scenarios)
Negative Tests (7 scenarios):
- β Non-existent element handling
- β Invalid URL navigation
- β Timeout handling
- β Error recovery
- β Stale element handling
Advanced Features (7 scenarios):
- β JavaScript execution
- β Cookie management
- β Window management
- β Keyboard actions
- β Browser navigation
- β Performance metrics
REST API testing with REST Assured and Robot Framework - No Selenium Grid required!
# Run all API tests (fast, no browser needed)
./scripts/run-api-tests.sh
# Or with Maven directly
./mvnw test -DsuiteXmlFile=testng-api-suite.xml
# Or Robot Framework API tests
python3 -m robot.run src/test/robot/APITests.robotWhat it includes:
Java API Tests (3 tests - REST Assured):
- β API contract validation
- β OAuth authentication schema
- β Response schema validation
Robot Framework API Tests (3 tests - RequestsLibrary):
- β GET single post
- β GET all posts
- β POST create new post
Benefits:
- β‘ Fast: No browser startup overhead
- π Lightweight: Run anywhere (CI/CD, local, Docker)
- π Integrated: Same Allure reports as UI tests
- π Reusable: REST Assured for all API testing
This framework now supports multiple UI testing tools beyond Selenium:
Fast and reliable end-to-end testing with auto-waiting and network interception:
# Run Playwright tests
./scripts/run-playwright-tests.sh chromium
# Or directly
cd playwright && npm testFeatures:
- β TypeScript for type safety
- β Auto-waiting for elements
- β Network interception and mocking
- β Multi-browser support (Chromium, Firefox, WebKit)
- β Page Object Model pattern
- β Screenshot and video capture
- β HTML reports
Test Location: playwright/tests/
Modern TypeScript end-to-end testing framework with time-travel debugging:
# Run Cypress tests (interactive mode)
./scripts/run-cypress-tests.sh open
# Run Cypress tests (headless)
./scripts/run-cypress-tests.sh run chromeFeatures:
- β TypeScript for type safety
- β Time-travel debugging
- β Real-time reloads
- β Automatic waiting
- β Network stubbing
- β Screenshot and video capture
- β Cross-browser support
Test Location: cypress/cypress/e2e/
Keyword-driven test automation with human-readable syntax:
# Run Robot Framework tests
./scripts/run-robot-tests.sh
# Run specific test file
./scripts/run-robot-tests.sh GoogleSearchTests.robot
# Or with Maven
./mvnw test -ProbotFeatures:
- β Human-readable keyword syntax
- β Built-in libraries (Selenium, Requests, etc.)
- β Data-driven testing
- β HTML reports
- β Easy to learn for non-programmers
- β Extensible with custom libraries
Test Location: src/test/robot/
Framework Comparison:
| Framework | Language | Best For | Speed | Learning Curve |
|---|---|---|---|---|
| Selenium | Java | Legacy support, Grid | Medium | Medium |
| Playwright | TypeScript | Modern apps, reliability | Fast | Medium |
| Cypress | TypeScript | Frontend-heavy apps | Fast | Easy |
| Robot Framework | Python | Non-technical testers | Medium | Easy |
Load and stress testing with industry-leading tools:
# Locust (40% - Primary tool, Python)
./scripts/run-locust-tests.sh
# Gatling (30% - Detailed reports, Scala)
./scripts/run-gatling-tests.sh
# JMeter (30% - Industry standard, Java)
./scripts/run-jmeter-tests.sh
# Run all performance tests
./scripts/run-all-performance-tests.shTool Comparison:
| Tool | Language | Best For | Output |
|---|---|---|---|
| Artillery + Playwright (20%) | JavaScript | Browser load testing, Core Web Vitals | JSON + Allure |
| Gatling (25%) | Scala | Detailed analysis, beautiful reports | HTML Dashboard |
| JMeter (25%) | Java | Industry standard, protocol support | HTML + CSV |
| Locust (30%) | Python | Real-time monitoring, flexible scripting | Web UI + HTML |
What it includes:
Artillery + Playwright Tests (20% allocation - Browser-Level):
- β homepage-minimal-test.yml - Quick smoke test
- β homepage-load.yml - Homepage load testing
- β applications-flow.yml - Full CRUD flow testing
- β Real browser rendering (Chromium, Firefox, WebKit)
- β Core Web Vitals tracking (LCP, FCP, CLS, TTI)
- β JavaScript execution and rendering metrics
Gatling Tests (25% allocation - Protocol-Level):
- β ApiLoadSimulation.scala - REST API load test
- β WebLoadSimulation.scala - Web page load test
- β Ramp: 1-50 users over 30s
- β Beautiful HTML reports with graphs
JMeter Tests (25% allocation - Protocol-Level):
- β API_Performance_Test.jmx - API load testing
- β Web_Load_Test.jmx - Website load testing
- β 30-50 concurrent users
- β Industry-standard reports
Locust Tests (30% allocation - Protocol-Level):
- β api_load_test.py - API performance testing
- β web_load_test.py - Website load testing
- β comprehensive_load_test.py - Complete scenarios
- β Real-time web UI: http://localhost:8089
- β 100-200 concurrent users
Metrics Collected:
- β±οΈ Response times (min/max/avg/p95/p99)
- π Throughput (requests per second)
- β Success/failure rates
- π₯ Concurrent users
- π Performance trends
Automated Execution:
- π Nightly Quick Check (10 PM CST) - 30-second smoke test
- π Weekly Comprehensive (Sunday 10 PM CST) - All 4 tools
- π― Manual Trigger - Run any time via GitHub Actions UI
- π CI/CD Integration - Run in main CI pipeline with UI tests
CI/CD Integration:
- Performance tests can run in the same pipeline as UI tests
- Environment-aware: Run in
dev,test, ordev-test(never prod) - Parallel execution: Performance tests run simultaneously with UI tests
- Unified reporting: Results included in combined Allure reports
- Options:
ui-only,performance-only, orall(both) - Artillery tests run automatically on branches (dev) and main (dev + test)
See: Performance Testing Guide
# Run all local tests (Cypress, Playwright, Robot Framework) - No Docker required!
./scripts/run-tests-local.sh
# Selenium tests (default - requires Docker/Grid)
./scripts/run-tests.sh Scenarios chrome
# Playwright tests
./scripts/run-playwright-tests.sh chromium true
# Cypress tests
./scripts/run-cypress-tests.sh run chrome
# Robot Framework tests
./scripts/run-robot-tests.sh
# API tests
./scripts/run-api-tests.sh
# Performance tests
./scripts/run-all-performance-tests.sh
# Just compile (no tests)
./scripts/compile.shπ‘ Tip: Use ./scripts/run-tests-local.sh to run tests without Docker (saves disk space!). See Local Testing Guide for details.
# Run all tests
./mvnw clean test
# Run specific test class
./mvnw test -Dtest=Scenarios
# Run specific test method
./mvnw test -Dtest=Scenarios#Google
# Run with specific browser
./mvnw test -Dtest=Scenarios#Microsoft -Dbrowser=chrome
# Skip tests during build
./mvnw clean install -DskipTestsTests run in parallel by default (5 threads):
# Parallel execution is configured in pom.xml
./mvnw test
# Runs with 5 parallel threads automaticallyπ‘ Tip: You can use the
treecommand to get a better view of the Project Structure like so:tree -L 3 -d -I "__pycache__|bin|node_modules|results|target*|test-results|venv" ../$(basename "$PWD")
full-stack-qa/
βββ src/
β βββ main/java/com/cjs/qa/app/ # Main application code
β βββ test/java/com/cjs/qa/ # Test suites (30+ packages)
β βββ google/ # Google test suite
β βββ microsoft/ # Microsoft test suite (33 files)
β βββ linkedin/ # LinkedIn test suite
β βββ vivit/ # Vivit community tests (25 files)
β βββ bts/ # BTS internal apps (60 files)
β βββ core/ # Core framework
β βββ selenium/ # Selenium wrappers
β βββ utilities/ # Helper utilities (43 files)
β βββ ... # 25+ more test suites
βββ cypress/ # Cypress test framework
βββ playwright/ # Playwright test framework
βββ vibium/ # Vibium test framework
βββ frontend/ # Frontend application
βββ backend/ # Backend application
βββ scripts/ # Helper scripts
β βββ run-tests.sh # Easy test execution
β βββ run-specific-test.sh # Run specific test
β βββ compile.sh # Compile only
βββ docs/ # Documentation
β βββ ANALYSIS.md # Project analysis
β βββ (Analysis documents archived)
β βββ (INTEGRATION_COMPLETE.md moved to PRIVATE/ folder)
β βββ NEXT_STEPS.md # Quick action guide
βββ xml/ # Configuration files
β βββ Companies.xml.template # Company config template
β βββ UserSettings.xml.template # User settings template
βββ Configurations/ # Environment configs
βββ data/ # Test data and SQL scripts
βββ .github/ # GitHub templates
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ pull_request_template.md # PR template
β βββ CODEOWNERS # Code ownership
βββ pom.xml # Maven configuration
βββ .editorconfig # Editor settings
βββ .pre-commit-config.yaml # Pre-commit hooks
βββ mvnw # Maven wrapper (no install needed!)
| Suite | Files | Description |
|---|---|---|
| 5 | Search, Maps, Flights | |
| Microsoft | 33 | Azure, Office365, OneDrive, Rewards |
| 8 | Profile, Connections, Jobs | |
| Vivit | 25 | Community portal testing |
| BTS | 60 | Internal PolicyStar applications |
| Atlassian | 22 | Jira, Confluence, Bamboo, Stash |
| Bitcoin | 1 | Cryptocurrency testing |
| Dropbox | 3 | File sharing |
| United Airlines | 8 | Booking, Account management |
| Wellmark | 8 | Healthcare portal |
| YourMembership | 61 | API testing suite |
| ... | ... | 25+ more domains |
Total: 394+ test files across 30+ domains
Test Layer (Scenarios.java)
β
Page Objects (LoginPage, SearchPage, etc.)
β
Selenium Wrapper (SeleniumWebDriver, Page)
β
WebDriver (Chrome, Firefox, Edge, etc.)
-
Core Framework (
com.cjs.qa.core)Environment.java- Environment managementAutGui.java- Application under test interfaceQAException.java- Custom exception handling
-
Selenium Layer (
com.cjs.qa.selenium)SeleniumWebDriver.java- WebDriver wrapperPage.java- Base page objectISelenium.java- Selenium interface
-
Utilities (
com.cjs.qa.utilities)SecureConfig.java- Google Cloud Secret Manager integrationGoogleCloud.java- Secret retrievalJavaHelpers.java- Helper methodsFSO.java- File system operationsEmail.java- Email utilities
-
Page Objects (per domain)
- Domain-specific page objects
- Organized by application/site
This framework maintains security standards that exceed industry best practices, implementing multiple layers of protection, automated verification, and continuous monitoring.
Key Security Features:
- β Google Cloud Secret Manager - Enterprise-grade credential management
- β Zero credentials in source code - 100% secure credential storage
- β AES-256 encryption at rest - Industry-leading encryption standard
- β TLS 1.3 encryption in transit - Latest transport security protocol
- β Automated security scanning - Pre-commit hooks and CI/CD checks
- β CodeQL Security Scanning - Weekly automated code security analysis with Copilot Autofix
- β Dependabot - Automated dependency updates for npm, Python, Maven, GitHub Actions, and Docker
- β Comprehensive audit logging - Complete security event tracking
- β IAM-based access control - Granular permissions per credential
- β Automated secret rotation - Built-in versioning and rotation
// Credentials retrieved securely from Google Cloud Secret Manager
String password = EPasswords.BTSQA.getValue();
String apiKey = EAPIKeys.VIVIT_GT_WEBINAR_CONSUMER_KEY.getValue();
// All credentials managed securely - no hardcoded values β
All sensitive configuration files are protected by .gitignore and never committed:
xml/Companies.xml- Company credentialsxml/UserSettings.xml- Test credentialsConfigurations/Environments.xml- Environment configurations- Any
*-key.json- Service account keys
For comprehensive security standards and practices, see:
- Security Standards & Practices - Complete security documentation
- AI Workflow Rules - Development security rules
- Pre-Pipeline Validation - Security checks
Security is a top priority with automated verification and testing in place.
Beautiful, interactive HTML reports with screenshots, graphs, and trends:
# Option 1: One-command (starts Grid, runs tests, opens report)
./scripts/generate-allure-report.sh
# Option 2: Manual
docker-compose up -d selenium-hub chrome-node-1
docker-compose run --rm tests -Dtest=SimpleGridTest,EnhancedGridTests
allure serve target/allure-results
docker-compose downFeatures:
- π Interactive dashboards with graphs
- πΈ Screenshots automatically captured on failures
- π Historical trends (track improvements)
- π·οΈ Organized by Epic/Feature/Story
- β±οΈ Performance metrics
- π― Severity-based filtering
See: docs/guides/testing/ALLURE_REPORTING.md for complete guide
JUnit Reports
./mvnw test
open target/surefire-reports/index.htmlCucumber Reports
./mvnw test
open target/cucumber-reports/cucumber.htmlTestNG Reports
# Available in target/surefire-reports/# Clean build
./mvnw clean
# Compile main code
./mvnw compile
# Compile tests
./mvnw test-compile
# Run all tests
./mvnw test
# Package (skip tests)
./mvnw package -DskipTests
# Run specific test suite
./mvnw test -Dtest=Scenarios#Google# Run tests with browser selection
./scripts/run-tests.sh Scenarios chrome
# Run specific test method
./scripts/run-specific-test.sh Scenarios Microsoft
# Compile without tests (faster)
./scripts/compile.shStatus: β 0 Checkstyle violations, 0 PMD violations - All code quality standards met
Tools:
- β Checkstyle - Google Java Style, 120-char line length, all rules enabled
- β PMD - Custom ruleset, 0 violations
- β Spotless - Import management (java,javax,org,com ordering)
- β Prettier - Code formatting (120-char line length)
- β Google Java Format - Line length fixes
Pre-commit hooks automatically check:
- β Code formatting (Prettier + Spotless + Google Java Format)
- β Import ordering and cleanup
- β Checkstyle violations
- β PMD violations
- β Trailing whitespace
- β File endings
- β YAML/XML/JSON syntax
- β Hardcoded secrets detection
- β Sensitive file blocking
- β Large file warnings
Key Features:
- β GuardedLogger - Automatic log statement guards (no manual checks needed)
- β Zero violations - All PMD and Checkstyle violations resolved
- β Automated formatting - Pre-commit hooks format code automatically
- β CI optimization - Separate verification script for faster CI runs
# Format code before commit (required if hooks not installed)
./scripts/format-code.sh
# Install hooks (one-time setup)
./scripts/install-git-hooks.shSee: Code Quality Guide for complete documentation
# 1. Start Selenium Grid
docker-compose up -d selenium-hub chrome-node-1 firefox-node
# 2. View Grid Console
open http://localhost:4444
# 3. Run tests with Allure report
./scripts/generate-allure-report.sh
# 4. Or run tests manually
docker-compose run --rm tests -Dtest=SimpleGridTest,EnhancedGridTests
# 5. Stop everything
docker-compose downdocker-compose.yml- Full setup with monitoring (Prometheus + Grafana)docker-compose.dev.yml- Lightweight for developmentdocker-compose.prod.yml- Production with auto-scaling (4 Chrome + 2 Firefox nodes)
# Use specific environment
docker-compose -f docker-compose.dev.yml up -d
docker-compose -f docker-compose.prod.yml up -d- Grid UI: http://localhost:4444
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (admin/admin)
- Chrome VNC: vnc://localhost:5900 or http://localhost:7900 (noVNC)
- Firefox VNC: vnc://localhost:5902 or http://localhost:7902 (noVNC)
- β Selenium Grid - Hub + 4 browser nodes (2 Chrome, Firefox, Edge)
- β VNC/noVNC - Visual debugging (watch tests run live!)
- β Monitoring - Prometheus metrics + Grafana dashboards
- β Multi-stage builds - Optimized 414MB image
- β ARM64 support - Works on Apple Silicon (M1/M2/M3)
- β
Auto-scaling - Scale nodes with
docker-compose up --scale - β Health checks - Automatic service monitoring
- β WebDriverManager - No manual driver downloads
See docs/guides/infrastructure/DOCKER.md for complete Docker guide
./scripts/docker/grid-start.sh # Start Grid
./scripts/docker/grid-stop.sh # Stop Grid
./scripts/docker/grid-health.sh # Check health
./scripts/docker/grid-scale.sh # Scale nodesEvery push to main or develop triggers:
β
Build & Compile β β
Grid Tests (Chrome) β β
Allure Report
β β
Grid Tests (Firefox) β β
Code Quality
β β
Docker Build
β β
Test Summary
Matrix Testing:
- 11 tests Γ 2 browsers = 22 test executions
- Automatic screenshot capture on test failures only
- Allure report with graphs and trends
- GitHub Pages deployment
View Results:
- GitHub Actions Tab
- Check build status badge above
- Download artifacts (test results, screenshots, Allure reports)
See: docs/guides/infrastructure/GITHUB_ACTIONS.md for complete CI/CD guide
Comprehensive documentation available in /docs:
- DOCKER.md - Complete Docker & Grid guide (500+ lines)
- ALLURE_REPORTING.md - Allure setup & usage (500+ lines)
- GITHUB_ACTIONS.md - CI/CD pipeline guide (400+ lines)
- PRE_PIPELINE_VALIDATION.md - Pre-commit/pre-push validation checklist to prevent pipeline failures
- QUICK_REFERENCE.md - One-page quick reference for critical validation checks
- NAMING_STANDARDS.md - Living document for naming conventions (CI/CD, documents, code)
- VERSION_TRACKING.md - Living document for tracking dependency versions and scheduling updates
- VERSION_MONITORING.md - Automated version monitoring and alerting system documentation
- 20251220_NEXT_STEPS_AFTER_PR53.md - Comprehensive work plan for post-PR #53 execution (archived)
- AI_WORKFLOW_RULES.md - Detailed workflow rules and guidelines for AI-assisted development
- NAVIGATION.md - Documentation navigation guide
- INTEGRATION_COMPLETE.md - Secret Manager setup (moved to PRIVATE/ folder)
- ANALYSIS.md - Full project analysis (archived)
- ANALYSIS_SUGGESTIONS.md - 150-task roadmap (archived)
- ANALYSIS_PS_RESULTS.md - Password migration results (archived)
- QUICK_WINS_COMPLETE.md - Quick wins summary (archived)
- xml/README.md - XML configuration setup
- Configurations/README.md - Environment configuration
- scripts/README.md - Script usage guide
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Clone and checkout - Git hooks auto-install via post-checkout hook
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
./mvnw test) - Commit your changes (pre-commit hook automatically formats code)
- Push to branch (
git push origin feature/amazing-feature) - Pre-push hook formats, compiles, and validates code quality - Open a Pull Request (template will auto-populate)
- Use the PR template provided
- Ensure all tests pass
- Update documentation if needed
- No hardcoded secrets (pre-commit hooks will block)
- Follow code style (.editorconfig)
See CODE_OF_CONDUCT.md for community guidelines.
# 1. Clone repository
git clone https://github.com/CScharer/full-stack-qa.git
cd full-stack-qa
# Git hooks are automatically installed via post-checkout hook
# (Pre-commit hook formats code, pre-push hook verifies quality)
# 2. Authenticate with Google Cloud
gcloud auth application-default login
gcloud config set project cscharer
# 3. Copy templates
cp xml/Companies.xml.template xml/Companies.xml
cp xml/UserSettings.xml.template xml/UserSettings.xml
# 4. Run tests!
./mvnw clean testNo password sharing needed! All credentials are fetched from Google Cloud Secret Manager.
# Google tests
./mvnw test -Dtest=Scenarios#Google
# Microsoft tests
./mvnw test -Dtest=Scenarios#Microsoft
# LinkedIn tests
./mvnw test -Dtest=Scenarios#LinkedIn# Chrome (default)
./mvnw test -Dbrowser=chrome
# Firefox
./mvnw test -Dbrowser=firefox
# Edge
./mvnw test -Dbrowser=edge# Easy syntax for running tests
./scripts/run-tests.sh Scenarios chrome
./scripts/run-tests.sh Scenarios firefox
# Run specific test method
./scripts/run-specific-test.sh Scenarios Google| Category | Library | Version |
|---|---|---|
| WebDriver | Selenium | 4.40.0 |
| BDD | Cucumber | 7.33.0 |
| Testing | JUnit | 6.0.2 |
| Testing | TestNG | 7.11.0 |
| Testing | Vitest | 4.0.16 |
| Database | JDBC (Multi-DB) | Various |
| HTTP | Apache HttpClient | 4.5.14 |
| JSON | Gson | 2.13.2 |
| Excel | Apache POI | 5.5.1 |
| PDFBox | 3.0.6 | |
| Security | Google Cloud Secret Manager | 2.82.0 |
| Driver Management | WebDriverManager | 6.3.3 |
| UI Testing | Playwright (TS) | 1.57.0 |
| UI Testing | Cypress (TS) | 15.8.1 |
| UI Testing | Robot Framework | 2.1.0 |
| Database | H2, SQLite, MSSQL | Various |
| Docker | Docker Compose | 3.8 |
| CI/CD | GitHub Actions | Latest |
Total: 50+ dependencies, all managed via Maven
- Test Files: 394+ Java files
- Test Suites: 30+ domains
- Page Objects: 150+ pages
- Utilities: 43 helper classes
- Lines of Code: 100,000+ lines
- Compilation: 100% success rate
- Security: 43 secrets in Google Cloud
- Documentation: 200+ pages
β Complete Containerized Testing Infrastructure
- Docker + Selenium Grid (Hub + 4 browser nodes)
- 3 Docker Compose environments (default, dev, prod)
- Monitoring stack (Prometheus + Grafana)
- VNC/noVNC debugging support
- ARM64 (Apple Silicon) compatibility
β Allure Reporting with Screenshots
- Allure Framework integration (Allure3 CLI: 3.0.0, Allure2 Java: 2.32.0)
- Automatic screenshot capture on test failures only
- Beautiful HTML dashboards with graphs
- Epic/Feature/Story organization
- Historical trend tracking
- π View Latest Report - Public GitHub Pages
β GitHub Actions CI/CD Pipeline
- Automated testing on every push
- Matrix testing (Chrome + Firefox)
- 6 parallel jobs (build, test, report, quality, docker, summary)
- Allure report generation and deployment
- Test artifact retention (7-30 days)
β Working Test Suite (11 tests, 100% passing)
- SimpleGridTest (3 tests) - Basic Grid verification
- EnhancedGridTests (8 tests) - Comprehensive scenarios
- All with Allure annotations and screenshots
- TestNG parallel execution ready
β Security & Quality
- 43 passwords secured in Google Cloud
- Zero hardcoded credentials
- Pre-commit hooks active
- WebDriverManager (auto driver management)
- AllureHelper utility for enhanced reporting
β Progress Update
- 65/150 tasks completed (43%)
- Phase 1 (Security): 100% β
- Phase 2 (Docker & Infrastructure): 100% β
- Phase 3 (Testing & Reporting): 80% β
- 12 commits today, 2,000+ lines added
# Solution: Authenticate with Google Cloud
gcloud auth application-default login# Solution: Use Maven wrapper (included in repo)
./mvnw clean test
# NOT: mvn clean test# Solution: Drivers are managed automatically
# No manual driver installation needed# Solution: Copy template files
cp XML/Companies.xml.template XML/Companies.xmlMore help: See docs/ directory for comprehensive guides.
- Documentation: Check
/docsdirectory - Issues: Use GitHub issue templates
- Questions: Create a discussion on GitHub
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright Β© 2025 CJS Consulting, L.L.C
- Framework: Selenium WebDriver, Cucumber BDD
- Security: Google Cloud Secret Manager
- Build Tool: Apache Maven
- Testing: JUnit, TestNG
- CI/CD: GitHub Actions
Organization: CJS Consulting, L.L.C Website: http://www.cjsconsulting.com CI: Jenkins at http://cscharer-laptop:8080/
Check out our roadmap (archived):
- 65/150 tasks completed (43%) π―
- Phase 1 (Security): β COMPLETE
- Quick Wins: β COMPLETE
- Phase 2 (Docker & Infrastructure): β COMPLETE
- Phase 3 (Testing & Reporting): β 80% Complete
- Phase 4 (Advanced Features): π Planned
- Visual Regression Testing
- Cross-browser matrix optimization
- Mobile browser emulation
- Advanced security scanning (SAST/DAST)
Want to contribute? See NAVIGATION.md for documentation structure and current work items!
Built with β€οΈ by the CJS QA Team
β Star this repo if you find it useful!