Skip to content

A **production-ready** C# test automation framework demonstrating enterprise-level automation engineering practices. Built to showcase expertise in Selenium WebDriver, API testing, cross-browser compatibility, containerization, and CI/CD integration.

Notifications You must be signed in to change notification settings

topemalheiro/csharp-selenium-automation-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”¬ C# Test Automation Framework

.NET Selenium NUnit Docker CI/CD

A production-ready C# test automation framework demonstrating enterprise-level automation engineering practices. Built to showcase expertise in Selenium WebDriver, API testing, cross-browser compatibility, containerization, and CI/CD integration.

🎯 Framework Highlights

πŸ’Ό Professional Features

  • βœ… Cross-Browser Testing - Chrome, Firefox, Edge with automatic driver management
  • βœ… REST API Testing - Complete CRUD operations with authentication & validation
  • βœ… Page Object Model - Scalable, maintainable UI test architecture
  • βœ… Parallel Execution - Concurrent test runs for faster feedback cycles
  • βœ… CI/CD Integration - GitHub Actions with comprehensive reporting
  • βœ… Docker Support - Containerized execution for consistent environments
  • βœ… Structured Logging - Detailed execution traces with Serilog
  • βœ… Auto Screenshots - Failure evidence capture for debugging
  • βœ… Multi-Format Reporting - TRX, JSON, HTML test reports

πŸ› οΈ Technology Stack

Component Technology Purpose
Framework .NET 8 Modern C# development platform
UI Testing Selenium WebDriver 4.x Browser automation & testing
API Testing HttpClient + NUnit REST API validation
Test Runner NUnit Test execution & assertions
Containerization Docker Consistent test environments
CI/CD GitHub Actions Automated pipeline execution
Logging Serilog Structured diagnostic logging
Reporting Multiple formats Comprehensive test reporting

πŸ“Š Test Categories & Coverage

πŸ§ͺ UI Test Suite (UI.AutomationTests)

  • Smoke Tests - Core functionality validation
  • Functional Tests - Feature-complete testing with parameterized inputs
  • Performance Tests - Response time validation (< 5 second thresholds)
  • Cross-Browser Tests - Multi-browser compatibility verification
  • Edge Case Tests - Special characters, empty inputs, error scenarios

πŸ”Œ API Test Suite (API.AutomationTests)

  • CRUD Operations - Complete Create, Read, Update, Delete testing
  • Authentication - Bearer token, Basic auth, API key validation
  • Data Validation - Schema verification, field validation
  • Error Handling - 404, 500, timeout scenario testing
  • Performance Testing - API response time benchmarking

πŸš€ Quick Start

Prerequisites

# Required software
- .NET 8 SDK
- Chrome/Firefox/Edge browsers
- Docker (optional)
- Git

πŸ”§ Setup Commands

# Clone repository
git clone https://github.com/[username]/[repo-name].git
cd [repo-name]

# Restore dependencies & build
dotnet restore
dotnet build --configuration Release

# Run all tests
dotnet test --configuration Release

# Run specific test suites
dotnet test UI.AutomationTests/UI.AutomationTests.csproj
dotnet test API.AutomationTests/API.AutomationTests.csproj

🌐 Cross-Browser Testing

# Chrome (default)
$env:BROWSER="Chrome"; dotnet test UI.AutomationTests/

# Firefox
$env:BROWSER="Firefox"; dotnet test UI.AutomationTests/

# Edge
$env:BROWSER="Edge"; dotnet test UI.AutomationTests/

🐳 Docker Execution

# Build & run containerized tests
docker build -t test-automation-framework .
docker run --rm test-automation-framework

# With result collection
docker run --rm \
  -v ${PWD}/TestResults:/app/TestResults \
  -v ${PWD}/Screenshots:/app/Screenshots \
  test-automation-framework

πŸ“ Project Architecture

TestAutomationFramework/
β”œβ”€β”€ πŸ”§ TestFramework/              # Core automation components
β”‚   β”œβ”€β”€ DriverFactory.cs          # Cross-browser WebDriver factory
β”‚   β”œβ”€β”€ BasePage.cs               # Page Object Model base class
β”‚   └── ApiClient.cs              # REST API testing client
β”œβ”€β”€ πŸ–₯️ UI.AutomationTests/          # User interface test suite
β”‚   β”œβ”€β”€ Pages/                    # Page Object implementations
β”‚   β”‚   β”œβ”€β”€ GoogleHomePage.cs     # Home page interactions
β”‚   β”‚   └── GoogleSearchResultsPage.cs # Results validation
β”‚   └── Tests/                    # UI test cases
β”‚       └── GoogleSearchTests.cs  # Search functionality tests
β”œβ”€β”€ πŸ”Œ API.AutomationTests/         # API test suite  
β”‚   └── Tests/
β”‚       └── JsonPlaceholderApiTests.cs # REST API validation
β”œβ”€β”€ βš™οΈ .github/workflows/           # CI/CD automation
β”‚   └── test-automation.yml      # GitHub Actions pipeline
β”œβ”€β”€ 🐳 Dockerfile                  # Container configuration
β”œβ”€β”€ πŸ“ appsettings.json           # Framework configuration
└── πŸ“š README.md                  # This documentation

🎯 Execution Examples

🏷️ Test Categories

# Smoke tests (quick validation)
dotnet test --filter "Category=Smoke"

# Performance tests (timing validation)  
dotnet test --filter "Category=Performance"

# Functional tests (feature testing)
dotnet test --filter "Category=Functional"

# Cross-browser compatibility
dotnet test --filter "Category=Cross-Browser"

πŸ“Š Sample Test Results

Test Run Summary:
βœ… UI Tests: 12 passed, 0 failed (Chrome)
βœ… UI Tests: 12 passed, 0 failed (Firefox)  
βœ… API Tests: 15 passed, 0 failed
⏱️ Total execution time: 2.3 minutes
πŸ“Έ Screenshots: 0 (no failures)
πŸ“ Logs: Generated in ./logs/

πŸ”„ CI/CD Pipeline Features

πŸ“ˆ GitHub Actions Workflow

  • πŸ”„ Trigger Events: Push to main/develop, PRs, scheduled runs
  • 🌐 Multi-Browser Testing: Parallel Chrome & Firefox execution
  • πŸ”Œ API Validation: Comprehensive REST endpoint testing
  • 🐳 Container Testing: Docker-based execution validation
  • πŸ“Š Artifact Collection: Results, logs, screenshots
  • πŸ“… Scheduled Regression: Daily 6 AM UTC automated runs
  • ⚑ Performance Monitoring: Baseline performance validation

🎯 Pipeline Jobs

  1. API Tests - Fast validation of backend services
  2. UI Tests (Chrome) - Primary browser automation
  3. UI Tests (Firefox) - Cross-browser validation
  4. Docker Tests - Containerized execution
  5. Test Reporting - Consolidated results & artifacts

πŸ”§ Configuration Management

βš™οΈ Browser Settings (appsettings.json)

{
  "BrowserSettings": {
    "Chrome": {
      "Arguments": [
        "--no-sandbox",
        "--disable-dev-shm-usage", 
        "--window-size=1920,1080"
      ]
    }
  }
}

🌍 Environment Configuration

{
  "Environment": {
    "CurrentEnvironment": "Development",
    "Environments": {
      "Development": { "BaseUrl": "https://dev.example.com" },
      "Staging": { "BaseUrl": "https://staging.example.com" },
      "Production": { "BaseUrl": "https://example.com" }
    }
  }
}

πŸ“š Professional Best Practices

πŸ—οΈ Framework Design

  • Page Object Model - Encapsulated page interactions
  • Dependency Injection - Loose coupling & testability
  • Wait Strategies - Robust element synchronization
  • Error Handling - Graceful failure management
  • Logging - Comprehensive execution tracing

πŸ§ͺ Test Design

  • Atomic Tests - Independent, self-contained scenarios
  • Data-Driven - Parameterized test execution
  • Descriptive Naming - Clear test purpose & expectations
  • Category Organization - Logical test grouping
  • Setup/Teardown - Proper test isolation

πŸ”„ DevOps Integration

  • Containerization - Platform-independent execution
  • Pipeline Automation - Automated quality gates
  • Artifact Management - Result preservation & analysis
  • Notification Systems - Failure alerting
  • Performance Monitoring - Trend analysis & baselines

πŸ› Troubleshooting Guide

πŸ”§ Common Issues & Solutions

WebDriver Problems

# Update browser drivers
dotnet add package Selenium.WebDriver.ChromeDriver --prerelease

# Check browser version compatibility
chrome --version

Network/API Issues

# Test API connectivity
curl https://jsonplaceholder.typicode.com/posts/1

# Verify proxy settings
$env:HTTP_PROXY=""
$env:HTTPS_PROXY=""

Permission Issues

# PowerShell execution policy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

πŸ“ˆ Professional Value

πŸ’Ό Enterprise Capabilities

  • Scalable Architecture - Supports large test suites
  • Maintainable Codebase - Clean, documented, modular design
  • Cross-Platform Support - Windows, Linux, macOS compatibility
  • Integration Ready - Easy integration with existing CI/CD pipelines
  • Performance Optimized - Parallel execution, efficient resource usage

πŸŽ“ Learning & Development

  • Modern Practices - Current industry standards & patterns
  • Comprehensive Coverage - UI, API, integration testing
  • Tool Expertise - Professional toolchain utilization
  • Quality Focus - Robust validation & error handling

πŸ“ž Support & Contribution

🀝 Getting Help

  • πŸ“ Issues: Create GitHub issues for bugs/features
  • πŸ“– Documentation: Check README & inline comments
  • πŸ” Logs: Review execution logs for troubleshooting
  • πŸ—οΈ Examples: Reference existing test implementations

πŸš€ Contributing

  1. Fork repository
  2. Create feature branch: feature/new-capability
  3. Implement changes with tests
  4. Update documentation
  5. Submit pull request

πŸ† Professional Summary

This Test Automation Framework demonstrates enterprise-level automation engineering expertise suitable for:

  • 🎯 Quality Assurance Engineers - Comprehensive testing capabilities
  • πŸ”§ Automation Engineers - Modern framework architecture
  • ⚑ DevOps Engineers - CI/CD integration & containerization
  • πŸ‘¨β€πŸ’» Software Engineers - Clean, maintainable code practices

Built with ❀️ for Quality Engineering Excellence

Showcasing professional automation skills with production-ready code, comprehensive documentation, and industry best practices.

About

A **production-ready** C# test automation framework demonstrating enterprise-level automation engineering practices. Built to showcase expertise in Selenium WebDriver, API testing, cross-browser compatibility, containerization, and CI/CD integration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages