VOOZH about

URL: https://deepwiki.com/Accenture/Ocaramba/1-ocaramba-framework-overview

⇱ Accenture/Ocaramba | DeepWiki


Loading...
Last indexed: 6 June 2026 (fb3580)
Menu

Ocaramba Framework Overview

Ocaramba is a cross-platform C# test automation framework built on top of Selenium WebDriver. It is designed to provide a standardized, robust architecture for web and mobile UI testing, supporting .NET 8.0 across Windows, Linux, and macOS README.md5-22

The framework emphasizes the Page Object Pattern, maintainability through a layered architecture, and extensive support for various test runners (NUnit, MSTest, xUnit) and execution environments (Docker, Selenium Grid, Cloud Providers) README.md21-35

Core Architecture Layers

Ocaramba is split into two primary NuGet packages to allow developers to choose the level of dependency management they require:

  1. OcarambaLite: The foundational engine. It contains the core logic, extensions, and helpers but does not include specific Selenium browser drivers OcarambaLite/OcarambaLite.csproj6
  2. Ocaramba: The full package. It inherits from OcarambaLite and includes bundled Selenium drivers like ChromeDriver and GeckoDriver for out-of-the-box local execution Ocaramba/Ocaramba.csproj36-55

Framework Dependency Relationship

The following diagram illustrates how the core libraries relate to the external Selenium ecosystem and the test projects.

Diagram: System Component Hierarchy


Sources: Ocaramba/Ocaramba.csproj31-55 OcarambaLite/OcarambaLite.csproj29-34 Ocaramba/packages.lock.json5-155

Supported Platforms and Subsystems

Ocaramba supports a wide array of browsers and platforms through its BrowserType enumeration OcarambaLite/BrowserType.cs28-99:

CategorySupported Entities
Desktop BrowsersChrome, Firefox, Edge (Chromium), Safari, Internet Explorer README.md30 OcarambaLite/BrowserType.cs33-68
Mobile PlatformsAndroid and iOS via Appium README.md23 OcarambaLite/BrowserType.cs93
Cloud ProvidersBrowserStack, SauceLabs, TestingBot README.md35 OcarambaLite/BrowserType.cs73-98
Specialized AppsAngularJS (via SynchronizeWithAngular) README.md45

Code Entity Mapping: Browser Initialization

This diagram bridges the configuration space (Natural Language/Settings) to the code entities responsible for execution.

Diagram: Configuration to Code Mapping


Sources: OcarambaLite/BrowserType.cs28-99 README.md41 OcarambaLite/OcarambaLite.csproj31-43

Key Subsystems

  • Driver Management: Centered around DriverContext, which manages the lifecycle of the WebDriver instance, including screenshots on failure and JavaScript error logging README.md41-46
  • Extensions: Enhances standard WebDriver capabilities with methods like JavaScriptClick, WaitForAjax, and GetElement (which replaces FindElement with built-in robust waiting) README.md32-33
  • Verification: The Verify class allows for "soft assertions," enabling tests to continue after a failure to collect multiple errors before failing the test run README.md37
  • Performance: The PerformanceHelper measures average and 90th percentile action times, reporting them to CI tools like TeamCity README.md38
  • Data-Driven Testing: Built-in helpers for reading test data from XML, CSV, and Excel files README.md39

Child Pages

For detailed technical documentation on specific areas of the framework, refer to the following pages:

  • Getting Started: Step-by-step guide for onboarding engineers: cloning the repo, restoring NuGet packages, choosing between Ocaramba and OcarambaLite, running the first test locally, and understanding the appsettings.json configuration file.
  • Solution Structure and Project Layout: Explains every project in Ocaramba.sln: OcarambaLite (core), Ocaramba (full), test runner projects (NUnit, MsTest, Xunit, Features), PageObjects, Appium, BrowserStack, NUnitExtentReports, and legacy Objectivity.* projects. Covers the dependency hierarchy and why the split exists.

Sources: