diff --git a/README.md b/README.md index 931b60dd..ac45d5da 100644 --- a/README.md +++ b/README.md @@ -27,12 +27,12 @@ The Selenium tests are run on different platforms like on-prem, docker and Brows Maven: ```sh - mvn install + mvn install -DskipTests ``` Gradle: ```sh - gradle build + gradle build -x test ``` ## About the tests in this repository diff --git a/build.gradle b/build.gradle index 0773645a..b95dc449 100644 --- a/build.gradle +++ b/build.gradle @@ -2,13 +2,13 @@ * This file was generated by the Gradle 'init' task. */ +/* groovylint-disable-next-line CompileStatic */ plugins { id 'java' id 'maven-publish' } repositories { - mavenLocal() mavenCentral() google() } @@ -19,7 +19,6 @@ dependencies { testImplementation 'com.browserstack:browserstack-local-java:1.0.6' testImplementation 'org.apache.commons:commons-lang3:3.11' testImplementation 'org.slf4j:slf4j-api:1.7.30' - testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'org.testng:testng:7.4.0' testImplementation 'io.cucumber:cucumber-java:6.10.4' testImplementation 'io.cucumber:cucumber-core:6.10.4' @@ -27,17 +26,14 @@ dependencies { testImplementation 'io.cucumber:cucumber-testng:6.10.4' testImplementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.2' testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.12.2' + testImplementation 'com.browserstack:webdriver-framework-testng:0.0.1' } -group = 'com.browserstack' -version = '0.0.1-SNAPSHOT' -description = 'browserstack-examples-cucumber-testng' -java.sourceCompatibility = JavaVersion.VERSION_1_8 - tasks.named('test') { - systemProperty "cucumber.filter.tags", System.getProperty("cucumber.filter.tags") - systemProperty "dataproviderthreadcount", System.getProperty("num.parallels") - useTestNG() { + /* groovylint-disable-next-line DuplicateStringLiteral */ + systemProperty 'cucumber.filter.tags', System.getProperty('cucumber.filter.tags') + systemProperty 'dataproviderthreadcount', System.getProperty('num.parallels') + useTestNG { suites 'src/test/resources/conf/testng.xml' parallel = 'methods' } diff --git a/pom.xml b/pom.xml index af257611..a582d389 100644 --- a/pom.xml +++ b/pom.xml @@ -14,13 +14,11 @@ 2.22.2 3.141.59 1.0.6 - 1.1.1 3.11 2.12.0 2.10.0 1.7.30 6.9.1 - 1.2.3 7.4.0 6.10.4 2.12.2 @@ -56,12 +54,6 @@ test - - ch.qos.logback - logback-classic - ${logback.version} - test - org.testng diff --git a/settings.gradle b/settings.gradle index 956c60bf..aba25e1f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,4 @@ +/* groovylint-disable CompileStatic */ /* * This file was generated by the Gradle 'init' task. */ diff --git a/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java b/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java index a294d9d6..78d79088 100644 --- a/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java +++ b/src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java @@ -5,11 +5,6 @@ import com.browserstack.examples.tests.RunWebDriverCucumberTests; import com.browserstack.webdriver.core.WebDriverFactory; -/** - * Created with IntelliJ IDEA. - * - * @author Anirudha Khanna - */ public abstract class AbstractBaseSteps { private WebDriver webDriver; diff --git a/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java b/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java index 9274025b..3c446027 100644 --- a/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java +++ b/src/test/java/com/browserstack/examples/stepdefs/HomePageSteps.java @@ -1,7 +1,5 @@ package com.browserstack.examples.stepdefs; - - import java.util.List; import java.util.stream.Collectors; import org.openqa.selenium.By; @@ -14,15 +12,16 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; - public class HomePageSteps extends AbstractBaseSteps { WebDriverWait wait; + @And("I add two products to cart") public void iAddProductsToCart() { WebDriverWait wait = new WebDriverWait(getWebDriver(), 10); Utility.waitForJSLoad(getWebDriver()); - wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#\\31 > .shelf-item__buy-btn"))).click(); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#\\31 > .shelf-item__buy-btn"))) + .click(); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.float-cart__close-btn"))).click(); getWebDriver().findElement(By.cssSelector("#\\32 > .shelf-item__buy-btn")).click(); Utility.waitForJSLoad(getWebDriver()); @@ -38,8 +37,7 @@ public void iPressTheAppleVendorFilter() { try { getWebDriver().findElement(By.cssSelector(".filters-available-size:nth-child(2) .checkmark")).click(); Utility.waitForJSLoad(getWebDriver()); - } - catch (NoSuchElementException e) { + } catch (NoSuchElementException e) { throw new AssertionError(); } } @@ -55,7 +53,8 @@ public void iShouldUserLoggedIn(String user) { WebDriverWait wait = new WebDriverWait(getWebDriver(), 10); Utility.waitForJSLoad(getWebDriver()); try { - String loggedInUser = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".username"))).getText(); + String loggedInUser = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".username"))) + .getText(); Assert.assertEquals(user, loggedInUser); } catch (NoSuchElementException e) { throw new AssertionError(user + " is not logged in"); @@ -69,7 +68,7 @@ public void iShouldSeeNoImageLoaded() { String src = ""; try { src = getWebDriver().findElement(By.cssSelector("img[alt='iPhone 12']")).getAttribute("src"); - Assert.assertEquals(src.isEmpty(),false); + Assert.assertEquals(src.isEmpty(), false); } catch (NoSuchElementException e) { throw new AssertionError("No Images are loaded"); } @@ -80,8 +79,10 @@ public void iShouldSeeItemsInTheList(int productCount) { try { WebDriverWait webDriverWait = new WebDriverWait(getWebDriver(), 10); Utility.waitForJSLoad(getWebDriver()); - webDriverWait.until(ExpectedConditions.visibilityOf(getWebDriver().findElement(By.cssSelector(".shelf-item__title")))); - List values = getWebDriver().findElements(By.cssSelector(".shelf-item__title")).stream().map(WebElement::getText).collect(Collectors.toList()); + webDriverWait.until( + ExpectedConditions.visibilityOf(getWebDriver().findElement(By.cssSelector(".shelf-item__title")))); + List values = getWebDriver().findElements(By.cssSelector(".shelf-item__title")).stream() + .map(WebElement::getText).collect(Collectors.toList()); Assert.assertEquals(productCount, values.size()); } catch (NoSuchElementException e) { throw new AssertionError("Error in page load"); @@ -90,12 +91,10 @@ public void iShouldSeeItemsInTheList(int productCount) { @Then("I should see prices in ascending order") public void iShouldSeePricesInAscendingOrder() { - WebDriverWait wait = new WebDriverWait(getWebDriver(), 10); try { - WebDriverWait webDriverWait = new WebDriverWait(getWebDriver(), 10); Utility.waitForJSLoad(getWebDriver()); - // webDriverWait.until(ExpectedConditions.visibilityOf(ThreadLocalDriver.getWebDriver().findElement(By.cssSelector(".shelf-item__price > div.val > b")))); - List priceWebElement = getWebDriver().findElements(By.cssSelector(".shelf-item__price > div.val > b")); + List priceWebElement = getWebDriver() + .findElements(By.cssSelector(".shelf-item__price > div.val > b")); Utility.waitForJSLoad(getWebDriver()); Assert.assertTrue(Utility.isAscendingOrder(priceWebElement, priceWebElement.size())); } catch (NoSuchElementException e) { diff --git a/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java b/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java index f944df86..6d277853 100644 --- a/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java +++ b/src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java @@ -16,11 +16,6 @@ import io.cucumber.testng.PickleWrapper; import io.cucumber.testng.TestNGCucumberRunner; -/** - * Created with IntelliJ IDEA. - * - * @author Anirudha Khanna - */ @CucumberOptions( features = "classpath:features", glue = "com.browserstack.examples.stepdefs", diff --git a/src/test/resources/capabilities-single.yml b/src/test/resources/capabilities-single.yml index b60af989..507cbae5 100644 --- a/src/test/resources/capabilities-single.yml +++ b/src/test/resources/capabilities-single.yml @@ -15,7 +15,6 @@ cloudDriver: browserstack.debug: true browserstack.networkLogs: true browserstack.console: debug -# browserstack.idleTimeout: 300 platforms: - name: Win10_Chrome_Latest-1 os: Windows diff --git a/src/test/resources/capabilities.yml b/src/test/resources/capabilities.yml index ec4cc03c..7ec82ad4 100644 --- a/src/test/resources/capabilities.yml +++ b/src/test/resources/capabilities.yml @@ -15,7 +15,6 @@ cloudDriver: browserstack.debug: true browserstack.networkLogs: true browserstack.console: debug -# browserstack.idleTimeout: 300 platforms: - name: Win10_IE11 os: Windows @@ -39,18 +38,8 @@ cloudDriver: browser_version: latest capabilities: browserstack.selenium_version: 3.141.59 -# - name: OSX_BigSur_Chrome_Latest -# os: OS X -# os_version: Catalina -# browser: Safari -# browser_version: '13.0' - name: Android_Samsung Galaxy S21_11.0 os: Android os_version: '11.0' device: Samsung Galaxy S21 real_mobile: true -# - name: iOS_iPhone XS_13.0 -# os: iPhone -# os_version: '13.0' -# device: iPhone XS -# real_mobile: true