Optimus

Optimus

  • Getting Started
  • Docs
  • Reporting
  • Roadmap
  • Contributors
  • Github

›Setting Up New Project

Getting Started

  • Getting Started

Installation

  • Optimus Cloud Installation

Setting Up New Project

  • Getting Started With TestNG
  • Getting Started With Cucumber
  • Getting Started With PyTest

Integration

  • TestNG Integration

Example Projects

  • Java Example Projects

Terminologies

  • Terminologies

Architecture

  • Bird View

TestNg

Create New Project

Create a new java “Gradle / Maven” project with below dependencies

Gradle:

dependencies {
    implementation 'com.testvagrant.optimuscloud:testng-dashboard:1.0.0'
    compile group: 'org.testng', name: 'testng', version: '7.0.0'
    implementation 'com.testvagrant.optimuscloud:java-client:1.0.0'
}

Maven:

<dependencies>
  <dependency>
      <groupId>com.testvagrant.optimuscloud</groupId>
      <artifactId>optimus-monitor</artifactId>
      <version>1.0.0</version>
  </dependency>
  <dependency>
      <groupId>com.testvagrant.optimuscloud</groupId>
      <artifactId>java-client</artifactId>
      <version>1.0.0</version>
  </dependency>
  <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.1.0</version>
      <scope>test</scope>
  </dependency>
</dependencies>

Write a TestNG Test

Create a new TestNG Class

public class MobileTest {
    private MobileDriver mobileDriver;
    private MobileDriverDetails mobileDriverDetails;
    private OptimusCloudManager optimusCloudManager;
}

Create Optimus Cloud Driver

Create a @BeforeMethod for instantiating driver.

    @BeforeMethod
    public void setupDriver(ITestContext iTestContext) throws Exception {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("appPackage", "com.testvagrant.hellooptimus");
        desiredCapabilities.setCapability("appActivity", "com.testvagrant.hellooptimus.MainActivity");
        desiredCapabilities.setCapability("app", "https://github.com/testvagrant/optimusng/releases/download/v1/HelloOptimus.apk");
        desiredCapabilities.setCapability("platformName", "Android");
        optimusCloudManager = new OptimusCloudManager();
        mobileDriverDetails = new OptimusCloudDriver().createDriver(desiredCapabilities);
        iTestContext.setAttribute(OptimusCloudConstants.MOBILE_DRIVER, mobileDriverDetails);
        mobileDriver = mobileDriverDetails.getMobileDriver();
    }

Write first test

Add test

    @Test
    public void shouldDisplayWelcomeMessage() {
        String welcomeMessage = mobileDriver.findElement(By.id("welcome_message")).getText();
        Assert.assertEquals(
                welcomeMessage,
                "Welcome to Optimus!! You are all ready to experience Automation like never before."
        );
    }

This is the complete MobileTest.java

public class MobileTest {

    protected MobileDriver mobileDriver;
    protected MobileDriverDetails mobileDriverDetails;
    private OptimusCloudManager optimusCloudManager;

    @BeforeMethod
    public void setupDriver(ITestContext iTestContext) throws Exception {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("appPackage", "com.testvagrant.hellooptimus");
        desiredCapabilities.setCapability("appActivity", "com.testvagrant.hellooptimus.MainActivity");
        desiredCapabilities.setCapability("app", "https://github.com/testvagrant/optimusng/releases/download/v1/HelloOptimus.apk");
        desiredCapabilities.setCapability("platformName", "Android");
        optimusCloudManager = new OptimusCloudManager();
        mobileDriverDetails = new OptimusCloudDriver().createDriver(desiredCapabilities);
        iTestContext.setAttribute(OptimusCloudConstants.MOBILE_DRIVER, mobileDriverDetails);
        mobileDriver = mobileDriverDetails.getMobileDriver();
    }

    @Test
    public void shouldDisplayWelcomeMessage() {
        String welcomeMessage = mobileDriver.findElement(By.id("welcome_message")).getText();
        Assert.assertEquals(
                welcomeMessage,
                "Welcome to Optimus!! You are all ready to experience Automation like never before."
        );
    }
}

Add run configuration

Add below listeners to your testng.xml or build.gradle

  1. com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusSuiteListener
  2. com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusTestListener

Eg: build.gradle

task runTests(type: Test) {
    outputs.upToDateWhen {false}
    useTestNG() {
        testLogging.showStandardStreams = true
        testLogging.showStandardStreams = true
        reports.html.enabled = false
        useDefaultListeners = true
        parallel 'methods'
        listeners.add "com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusSuiteListener"
        listeners.add "com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusTestListener"
    }
}

Eg: testng.xml

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1" >
    <listeners>
        <listener class-name="com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusSuiteListener" />
        <listener class-name="com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusTestListener" />
    </listeners>
</suite>

Run Tests

Run tests using testng.xml or by running gradle runTests

View Report

Navigate to http://localhost:9901 and login with credentials creds: u: admin, p: C0mplexPwd. You will be able to see optimus dashboard.

Build History

Dashboard Homepage

TestDetails Report

Test Details

Non Functional Report

NFR

← Optimus Cloud InstallationGetting Started With Cucumber →
  • Create New Project
  • Write a TestNG Test
    • Create Optimus Cloud Driver
    • Write first test
  • Add run configuration
  • Run Tests
  • View Report
    • Build History
    • TestDetails Report
    • Non Functional Report
Optimus
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHubStar
Facebook Open Source
Copyright © 2020 TestVagrant Technoligies