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
com.testvagrant.optimuscloud.dashboard.testng.listener.OptimusSuiteListener
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.