VOOZH about

URL: https://deepwiki.com/Accenture/Ocaramba/4-execution-environments

⇱ Execution Environments | Accenture/Ocaramba | DeepWiki


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

Execution Environments

Ocaramba is a cross-platform framework designed to run tests across diverse environments, including local development machines, isolated Docker containers, scalable Selenium Grids, and various cloud infrastructure providers. The framework utilizes a flexible configuration system that allows switching between these environments without modifying test code, primarily by toggling values in appsettings.json and leveraging environment-specific overrides like appsettings.Linux.json.

Environment Switching Logic

The framework determines its execution behavior by reading configurations through the BaseConfiguration class. For CI/CD pipelines, Ocaramba often uses the ASPNETCORE_ENVIRONMENT variable set to Linux to load specific settings for non-Windows environments. This variable ensures that the framework loads the correct drivers and settings for the target OS. The DriverContext class acts as the central hub, initializing the appropriate IWebDriver based on the BrowserType enum OcarambaLite/BrowserType.cs28-99

Environment to Configuration Mapping

EnvironmentConfiguration MechanismPrimary Configuration Keys
Localappsettings.jsonbrowser, PathToChromeDriverDirectory Ocaramba.Tests.NUnit/appsettings.json5-7
Dockerdocker-compose.yml + appsettings.jsonRemoteWebDriverHub, ocaramba/selenium image docker-compose.yml3-4 Ocaramba.Tests.NUnit/appsettings.json18
Selenium GridConfiguration InjectionRemoteWebDriverHub, browser=RemoteWebDriver OcarambaLite/BrowserType.cs58 Ocaramba.Tests.NUnit/appsettings.json18
Cloud Providersbrowserstack.yml or Capability Injectionbrowser=BrowserStack or CloudProvider OcarambaLite/BrowserType.cs73-98

The following diagram bridges the high-level execution modes to the specific code entities and configuration files that drive them.

Execution Mode to Code Entity Mapping


Sources: OcarambaLite/BrowserType.cs28-99 Ocaramba.Tests.NUnit/appsettings.json5-20 README.md30-35 docker-compose.yml1-17


Local and Docker Execution

Local execution is the default mode for development, supporting Chrome, Firefox, Edge, and Internet Explorer README.md30 Configuration for local drivers, such as PathToChromeDriverDirectory and ChromeBrowserExecutableLocation, is managed via appsettings.json Ocaramba.Tests.NUnit/appsettings.json7-13

For consistent environments across CI/CD, Ocaramba provides a Docker-based setup. The docker-compose.yml file defines an ocaramba_selenium_container using the ocaramba/selenium image docker-compose.yml3-4 It also includes a service for the-internet web application to facilitate local integration testing docker-compose.yml11-15

For details, see Local and Docker Execution.

Sources: README.md47 docker-compose.yml1-17 Ocaramba.Tests.NUnit/appsettings.json5-13


Selenium Grid and Cloud Providers

Ocaramba supports scaling tests via Selenium Grid or third-party Cloud Providers like BrowserStack, SauceLabs, and TestingBot. When running on these platforms, the framework uses specific entries in the BrowserType enum, such as RemoteWebDriver, BrowserStack, or CloudProvider OcarambaLite/BrowserType.cs58-98 The RemoteWebDriverHub setting in appsettings.json directs the framework to the appropriate endpoint Ocaramba.Tests.NUnit/appsettings.json18

For BrowserStack, the framework integrates via the Ocaramba.Tests.BrowserStack project README.md62 SauceLabs and TestingBot execution is facilitated through the Ocaramba.Tests.CloudProviderCrossBrowser project README.md62

For details, see Cloud Provider Testing: BrowserStack and SauceLabs.

Sources: README.md35-62 OcarambaLite/BrowserType.cs58-98 Ocaramba.Tests.NUnit/appsettings.json18


Mobile Testing with Appium

Mobile automation is supported through the Ocaramba.Tests.Appium project README.md64 This environment targets mobile platforms like Android and iOS using the Appium server. The framework identifies this mode via the BrowserType.Appium enum value OcarambaLite/BrowserType.cs93

The DriverContext initializes the Appium driver, allowing tests to interact with mobile elements. The framework supports native app testing as well as mobile web testing README.md23

For details, see Mobile Testing with Appium.

Sources: README.md23-64 OcarambaLite/BrowserType.cs93


Angular Application Testing

Testing Angular applications requires specialized synchronization to handle the asynchronous nature of the framework. Ocaramba provides a dedicated environment configuration for this in the Ocaramba.Tests.Angular project README.md54

The appsettings.json for Angular projects targets specific hosts like www.protractortest.org Ocaramba.Tests.Angular/appsettings.json4 When the framework detects an Angular application, it can utilize the SynchronizeWithAngular logic to ensure that WebDriver commands wait for the Angular zone to be stable README.md45

For details, see Angular Application Testing.

Sources: README.md45-54 Ocaramba.Tests.Angular/appsettings.json1-31


Execution Infrastructure Overview

The following diagram illustrates how the different test projects map to their respective execution environments through the framework's internal logic.

Test Project to Environment Flow


Sources: README.md54-64 OcarambaLite/BrowserType.cs28-99 Ocaramba.Tests.NUnit/appsettings.json1-39