https://github.com/accenture/ocaramba

C# Framework to automate tests using Selenium WebDriver

https://github.com/accenture/ocaramba

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

chrome data-driven firefox ie mstest nunit parallel safari selenium-webdriver specflow test test-automation xunit

Keywords from Contributors

interactive archival projection sequences observability autograding hacking shellcodes modular network-simulation
Last synced: 5 months ago · JSON representation

Repository

C# Framework to automate tests using Selenium WebDriver

Basic Info
  • Host: GitHub
  • Owner: Accenture
  • License: mit
  • Language: C#
  • Default Branch: master
  • Homepage:
  • Size: 68.8 MB
Statistics
  • Stars: 281
  • Watchers: 58
  • Forks: 134
  • Open Issues: 2
  • Releases: 59
Topics
chrome data-driven firefox ie mstest nunit parallel safari selenium-webdriver specflow test test-automation xunit
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

Ocaramba

Cross-Platform C# Framework to automate tests using Selenium WebDriver

Ocaramba Templates Build status BrowserStack Status

Test Framework was designed in Objectivity to propose a common way how people should create Selenium WebDriver tests.

Project API documentation can be found here: http://Accenture.github.io/Ocaramba

AI generated documentation DeepWiki

It provides the following features:

  • .NET 8.0 supported
  • Cross-Platform Windows, Linux and macOS systems supported
  • Supports continuous integration tools like Azure DevOps, Teamcity, Jenkins and others.
  • Ready for parallel tests execution, more details here
  • Possibility to use MSTest, NUnit or xUNIT framework
  • Specflow ready
  • Written entirely in C#
  • Contains example projects how to use it
  • Allows using Chrome, Firefox, Edge Chromium, Safari or Internet Explorer
  • Supports Appium-based Android UI tests, more details here
  • Overrides browser profile preferences, pass arguments to browsers, installs browser extensions, loading default firefox profile, Headless mode, more details here
  • Extends Webdriver by additional methods like JavaScriptClick, WaitForAjax, WaitForAngular, etc., more details here
  • Automatically waits when locating element for specified time and conditions, GetElement method instead of Selenium FindElement, more details here
  • Page Object Pattern
  • Support for SeleniumGrid, Cross browser parallel test execution with SauceLab, TestingBot and Browserstack more details here, Advanced Browser Capabilities and Options more details here
  • More common locators, e.g: "//*[@title='{0}' and @ms.title='{1}']", more details here
  • Verify - asserts without stop tests, more details here
  • Measures average and 90 Percentile action times, more details here
  • DataDriven tests from Xml, Csv and Excel files for NUnit and Xml, Csv for MSTest with examples, more details NUnit, MsTest
  • Visual Testing - browser screenshot of the element, more details here
  • Logging with NLog, EventFiringWebDriver logs, more details here
  • Files downloading (Firefox, Chrome), more details here
  • Possibility to send SQL or MDX queries (only .NET Framework)
  • Possibility of debugging framework installed from nuget package with sourcelink, more details here.
  • AngularJS support, more details here.
  • Possibility to check for JavaScript errors from the browser, more details here.
  • Instruction on how to run Ocaramba tests with Docker container, more details here.
  • ExtentReports support, more details here.

For all documentation, visit the Ocaramba Wiki.

Projects examples of using Test Framework :

  • Ocaramba.Tests.Angular for AngularJS
  • Ocaramba.Tests.Features for Specflow
  • Ocaramba.Tests.MsTest for MsTest
  • Ocaramba.Tests.NUnit for NUnit
  • Ocaramba.Tests.NUnitExtentReports for NUnit featuring test execution HTML report based on ExtentReports framework
  • Ocaramba.Tests.xUnit for xUnit
  • Ocaramba.Tests.PageObjects for Page Object Pattern
  • Ocaramba.Documentation.shfbproj for building API documentation
  • Ocaramba.Tests.CloudProviderCrossBrowser for cross browser parallel test execution with BrowserStack\SauceLabs\TestingBot\SeleniumGrid
  • Ocaramba.UnitTests for unit test of framework
  • Ocaramba.Tests.Appium for Appium-based Android UI tests

NUnit Example Test:

```csharp namespace Ocaramba.Tests.NUnit.Tests { using global::NUnit.Framework;

using Ocaramba.Tests.PageObjects.PageObjects.TheInternet;

[Parallelizable(ParallelScope.Fixtures)]
public class JavaScriptAlertsTestsNUnit : ProjectTestBase
{
    [Test]
    public void ClickJsAlertTest()
    {
        var internetPage = new InternetPage(this.DriverContext).OpenHomePage();
        var jsAlertsPage = internetPage.GoToJavaScriptAlerts();
        jsAlertsPage.OpenJsAlert();
        jsAlertsPage.AcceptAlert();
        Assert.AreEqual("You successfuly clicked an alert", jsAlertsPage.ResultText);
    }
}

}

```

NUnit Example Page Object:

```csharp namespace Ocaramba.Tests.PageObjects.PageObjects.TheInternet { using System; using System.Globalization;

using NLog;

using Ocaramba;
using Ocaramba.Extensions;
using Ocaramba.Types;
using Ocaramba.Tests.PageObjects;

public class InternetPage : ProjectPageBase
{
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

    /// <summary>
    /// Locators for elements
    /// </summary>
    private readonly ElementLocator
        linkLocator = new ElementLocator(Locator.CssSelector, "a[href='/{0}']");

    public InternetPage(DriverContext driverContext) : base(driverContext)
    {
    }

    public JavaScriptAlertsPage GoToJavaScriptAlerts()
    {
        this.Driver.GetElement(this.linkLocator.Format("javascript_alerts")).Click();
        return new JavaScriptAlertsPage(this.DriverContext);
    }
}

} ```

Where to start?


Checkout the code or get it from nuget.org

  • Ocaramba NuGet Downloads NuGet Version
  • OcarambaLite NuGet Downloads NuGet Version - lighten version without selenium drivers

or download Ocaramba Visual Studio templates Ocaramba Templates

Owner

  • Name: Accenture
  • Login: Accenture
  • Kind: organization

Accenture Github site

GitHub Events

Total
  • Create event: 140
  • Issues event: 3
  • Release event: 20
  • Watch event: 5
  • Delete event: 142
  • Member event: 1
  • Issue comment event: 480
  • Push event: 431
  • Gollum event: 16
  • Pull request event: 223
  • Fork event: 5
Last Year
  • Create event: 140
  • Issues event: 3
  • Release event: 20
  • Watch event: 5
  • Delete event: 142
  • Member event: 1
  • Issue comment event: 480
  • Push event: 431
  • Gollum event: 16
  • Pull request event: 223
  • Fork event: 5

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,862
  • Total Committers: 33
  • Avg Commits per committer: 56.424
  • Development Distribution Score (DDS): 0.253
Past Year
  • Commits: 147
  • Committers: 3
  • Avg Commits per committer: 49.0
  • Development Distribution Score (DDS): 0.224
Top Committers
Name Email Commits
Jakub Raczek j****k@o****k 1,390
dependabot[bot] 4****] 96
Tomasz Fajks t****s@o****k 76
Maciej Antosiak m****k@o****k 75
pawelstryczek p****k@g****m 40
pstryczek p****k@o****k 26
askoczypiec a****c@o****k 26
tomasz bien t****n@o****k 24
Jakub Raczek j****k@a****m 21
tomasz.bien@gmail.com t****n@g****m 9
mwyrodek w****j@g****m 9
Wojciech Miodek w****k@o****k 8
Tomasz Fajks f****z@g****m 8
Maksymilian Bahr m****r@o****k 6
Greg Pakes g****s@i****k 6
Dominik Baran d****n@o****k 6
amucha a****a@o****k 6
Bartosz Glubiak b****k@g****m 5
spacia s****a@o****k 5
Marta Nowik m****k@o****k 3
AgaKosc a****c@g****m 3
Bartosz Glubiak b****k@r****m 2
Patryk Kulecki p****i@o****k 2
Aleksandra Skoczypiec o****c@g****m 1
kris lemoine k****e@a****e 1
TestAutomationGroup T****p@o****k 1
Rafal Szkudlarek r****k@o****k 1
Anna Mikołajczyk a****k@o****k 1
Aleksandra Skoczypiec WorkAdmin a****a@o****k 1
Jasper k****e 1
and 3 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 49
  • Total pull requests: 302
  • Average time to close issues: 4 months
  • Average time to close pull requests: 26 days
  • Total issue authors: 29
  • Total pull request authors: 14
  • Average comments per issue: 2.16
  • Average comments per pull request: 2.57
  • Merged pull requests: 134
  • Bot issues: 2
  • Bot pull requests: 192
Past Year
  • Issues: 2
  • Pull requests: 209
  • Average time to close issues: 6 days
  • Average time to close pull requests: 7 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 3.55
  • Merged pull requests: 76
  • Bot issues: 2
  • Bot pull requests: 160
Top Authors
Issue Authors
  • jude-o (4)
  • MikeWilliams-UK (3)
  • artkpv (3)
  • arkadiyala (3)
  • vamsitp (3)
  • mvaddiboina (3)
  • TheXby (2)
  • dependabot[bot] (2)
  • maharatha (2)
  • csvipin31 (2)
  • edo248 (2)
  • mattpickle (2)
  • gregpakes (2)
  • AutomateThatOne (1)
  • SayantaniRs (1)
Pull Request Authors
  • dependabot[bot] (192)
  • raczeja (86)
  • gregpakes (5)
  • tbien (3)
  • bglubiak (3)
  • kf-patrykkulecki (2)
  • maciejjerzyantosiak (2)
  • tfajks (2)
  • Shofiqulqa (2)
  • urbanmichal (1)
  • martanowik (1)
  • kreeke (1)
  • rwozniakowski (1)
  • amikolajczyk (1)
Top Labels
Issue Labels
dependencies (2) enhancement (1)
Pull Request Labels
dependencies (191) .NET (97) docker (4)

Dependencies

Ocaramba/Ocaramba.csproj nuget
  • Microsoft.SourceLink.GitHub 1.1.1 development
  • StyleCop.Analyzers 1.1.118 development
  • Microsoft.AnalysisServices.AdomdClient.retail.amd64 19.42.0.4
  • Microsoft.Extensions.Configuration 3.1.2
  • Microsoft.Extensions.Configuration.Json 3.1.2
  • Microsoft.PowerShell.Commands.Diagnostics 6.2.1
  • Microsoft.PowerShell.SDK 6.2.1
  • Microsoft.WSMan.Management 6.2.1
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • System.Data.Common 4.3.0
  • System.Data.SqlClient 4.8.3
Ocaramba.Tests.Angular/Ocaramba.Tests.Angular.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • EWSoftware.SHFB 2021.4.9
  • EWSoftware.SHFB.NETCore 4.5.1
  • EWSoftware.SHFB.NETFramework 4.8.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NUnit 3.13.3
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
Ocaramba.Tests.CloudProviderCrossBrowser/Ocaramba.Tests.CloudProviderCrossBrowser.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NUnit 3.13.3
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
Ocaramba.Tests.Features/Ocaramba.Tests.Features.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • BoDi 1.5.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • SpecFlow 3.9.22
  • SpecFlow.NUnit 3.9.22
  • SpecFlow.Tools.MsBuild.Generation 3.9.22
Ocaramba.Tests.MsTest/Ocaramba.Tests.MsTest.csproj nuget
  • Appveyor.TestLogger 2.0.0
  • MSTest.TestAdapter 2.2.8
  • MSTest.TestFramework 2.2.10
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • Selenium.WebDriver.IEDriver 4.2.0
Ocaramba.Tests.NUnit/Ocaramba.Tests.NUnit.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • Microsoft.TestPlatform.TestHost 17.1.0
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NPOI 2.5.6
  • NUnit 3.13.3
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
Ocaramba.Tests.NUnitExtentReports/Ocaramba.Tests.NUnitExtentReports.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • ExtentReports 4.1.0
  • Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • Microsoft.TestPlatform.TestHost 17.1.0
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NPOI 2.5.6
  • NUnit 3.13.3
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
Ocaramba.Tests.PageObjects/Ocaramba.Tests.PageObjects.csproj nuget
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • System.Configuration.ConfigurationManager 4.7.0
Ocaramba.Tests.Xunit/Ocaramba.Tests.Xunit.csproj nuget
  • xunit.runner.console 2.4.1 development
  • xunit.runner.visualstudio 2.4.3 development
  • Appveyor.TestLogger 2.0.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • System.Configuration.ConfigurationManager 4.7.0
  • xunit 2.4.1
  • xunit.abstractions 2.0.3
  • xunit.assert 2.4.1
  • xunit.extensibility.execution 2.4.1
Ocaramba.UnitTests/Ocaramba.UnitTests.csproj nuget
  • NUnit3TestAdapter 4.2.1 development
  • Appveyor.TestLogger 2.0.0
  • Magick.NET-Q16-AnyCPU 10.1.0
  • Microsoft.NET.Test.Sdk 16.8.3
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • NUnit 3.13.3
  • NUnit.Runners 3.12.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
  • Selenium.WebDriver.ChromeDriver 102.0.5005.6102
  • Selenium.WebDriver.GeckoDriver 0.31.0
  • System.Configuration.ConfigurationManager 4.7.0
OcarambaLite/OcarambaLite.csproj nuget
  • Microsoft.SourceLink.GitHub 1.1.1 development
  • StyleCop.Analyzers 1.1.118 development
  • Microsoft.Extensions.Configuration 3.1.2
  • Microsoft.Extensions.Configuration.Json 3.1.2
  • Microsoft.PowerShell.Commands.Diagnostics 6.2.1
  • Microsoft.PowerShell.SDK 6.2.1
  • Microsoft.WSMan.Management 6.2.1
  • NLog 4.7.14
  • NLog.Web.AspNetCore 4.14.0
  • Selenium.Support 4.2.0
  • Selenium.WebDriver 4.2.0
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
Dockerfile docker
  • mcr.microsoft.com/dotnet/core/sdk 3.1 build
docker-compose.yml docker
  • ocaramba/selenium latest