Modern C# test automation template, evolved from a legacy financial services solution into a vendor-neutral, community-ready baseline.
A comprehensive, enterprise-grade test automation framework built with .NET 8.0, Selenium WebDriver, and RestSharp. This framework demonstrates modern SDET architecture patterns and serves as a plug-and-play template for API and UI testing.
- Modern .NET 8.0 with latest C# features
- Comprehensive Testing: API + UI test coverage
- Page Object Model: Maintainable UI test architecture
- Authentication: Multi-flow Azure AD integration
- Configuration Management: Environment-specific settings
- Secret Management: Env/Key Vault/encrypted configuration via SecretManager
- Retry Mechanisms: Robust error handling and recovery
- Performance Optimized: Efficient wait strategies
- WebDriver Lifecycle: Pooling, health checks, and Selenium Grid support
- Docker Ready: Containerized setup for easy deployment
- API Tests: RESTful API testing with RestSharp
- UI Tests: Selenium WebDriver with Page Object Model
- Authentication: Microsoft Entra ID integration
- Configuration: Centralized environment management
- Products: Core business entities
- Orders: Transaction management
- Customers: User/client management
- Dashboard: Business intelligence
- Templates: Reusable configurations
- Pricing: Fee and cost management
- .NET 8.0 SDK
- Visual Studio 2022 or VS Code
- Chrome or Edge browser
- Docker (optional)
- Clone the repository.
- Change into the test project directory:
cd tuel.test. - Copy
TUEL.TestFramework.runsettings.exampletoTUEL.TestFramework.runsettings. - Update the new file with your environment-specific values (or create
TUEL.TestFramework.local.runsettingsfor machine-specific overrides). - Review the core expectations in
docs/testing-guidelines.md. - Run tests:
dotnet test TUEL.TestFramework.sln --settings TUEL.TestFramework.runsettings
docker-compose up -d
docker exec -it tuel-test-framework dotnet test.
├── docs/
├── tuel.test/
│ ├── API/
│ ├── Configuration/
│ ├── Logging/
│ ├── Web/
│ ├── GlobalUsings.cs
│ ├── InitializeTestAssembly.cs
│ ├── TUEL.TestFramework.sln
│ ├── TUEL.TestFramework.csproj
│ ├── TUEL.TestFramework.runsettings.example
│ └── README.md
├── logs/
├── Dockerfile
├── docker-compose.yml
└── README.md
ENV: Environment name (dev, staging, prod)BaseURL: Application base URLBaseurlAPI: API base URLDefaultTimeoutSeconds: Default timeout for operations
Browser:local-edge,local-chrome, orremote-<browser>to target Selenium Grid/cloud providers.WebDriverProvider:localorgridto control provider selection.SeleniumGridUrl: Remote WebDriver hub whenWebDriverProvider=grid.WebDriverEnablePooling: Enable/disable the shared driver pool (defaulttrue).WebDriverCommandTimeoutSeconds: Increase for slow Selenium Grid providers.
- Azure AD: Client credentials flow
- ROPC: Resource owner password credentials
- Local JWT: RS256/ES256-signed development tokens with pluggable PEM keys
- Use
env://,kv://(Azure Key Vault), orenc://(AES-256 encrypted) references in runsettings. - Configure Key Vault access through
SecretManagement__KeyVaultUri, optional managed identity, and disable plaintext fallback for production. - Generate encrypted references with
ConfigurationEncryptionUtility.EncryptToReference.
- Product management endpoints
- Order processing APIs
- Customer data APIs
- Authentication flows
- Dashboard functionality
- Product management
- Order workflows
- Customer management
- Template configuration
- Test Results: Detailed test execution reports
- Performance Metrics: Execution time tracking
- Screenshots: Failure capture and analysis
- Logs: Comprehensive logging for debugging
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Enterprise Applications: CRM, ERP, e-commerce platforms
- API Testing: RESTful services and microservices
- UI Automation: Web application testing
- Regression Testing: Continuous integration pipelines
- Performance Testing: Load and stress testing
- Read the
VISION.mdto understand the long-term roadmap and decision-making principles. - All contributors must follow the
CODE_OF_CONDUCT.md. - Contribution steps, coding standards, and review expectations live in
CONTRIBUTING.md. - Testing expectations are detailed in
docs/testing-guidelines.md.
- Need help? Check
SUPPORT.mdfor the right channel. - Report security issues privately via the process in
SECURITY.md. Do not open public issues for vulnerabilities.
- Test Coverage: 95%+ code coverage
- Execution Time: < 5 minutes for full suite
- Reliability: 99%+ test stability
- Maintainability: Clean architecture patterns
Built by Omer "Ozzy" Akben — Full-Stack Developer • AI Engineer • SDET • [email protected] • (267) 512-4566