From becc4602abcdc052517a6475a5833cd5facb19f0 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 18:10:53 -0400 Subject: [PATCH 01/33] check code style on CI --- .github/workflows/build.yml | 104 +++++++------- README.md | 1 + pom.xml | 5 +- smoke.xml | 18 +++ .../java/com/lumatest/model/BagsPage.java | 20 +-- .../java/com/lumatest/model/BasePage.java | 30 ++-- .../com/lumatest/model/BreadcrumbsMenu.java | 18 +-- .../java/com/lumatest/model/GearPage.java | 6 +- .../java/com/lumatest/model/HomePage.java | 6 +- .../java/com/lumatest/model/ProductPage.java | 18 +-- .../java/com/lumatest/model/SideMenu.java | 20 +-- src/main/java/com/lumatest/model/TopMenu.java | 22 +-- src/test/java/FrameworkTest.java | 18 +-- src/test/java/com/lumatest/base/BaseTest.java | 64 ++++----- src/test/java/com/lumatest/data/TestData.java | 42 +++--- .../com/lumatest/test/NavigationTest.java | 100 ++++++------- .../com/lumatest/test/ProductPageTest.java | 38 ++--- .../java/com/lumatest/utils/DriverUtils.java | 134 +++++++++--------- .../java/com/lumatest/utils/ReportUtils.java | 16 +-- testng.xml | 20 +-- 20 files changed, 359 insertions(+), 341 deletions(-) create mode 100644 smoke.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a2116f..dbeeb4a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ permissions: id-token: write actions: read checks: write - + jobs: build: name: Build On @@ -23,60 +23,60 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Clone code from repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'corretto' - cache: maven + - name: Clone code from repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'corretto' + cache: maven + + - name: Cache m2 dependencies + uses: actions/cache@v4 + with: + path: .m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- - - name: Cache m2 dependencies - uses: actions/cache@v4 - with: - path: .m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - - name: Build with Maven - run: mvn -B package --file pom.xml + - name: Build with Maven + run: mvn -B package --file pom.xml - - name: Test with Maven - run: mvn test + - name: Test with Maven + run: mvn test - - name: Dorny Test Reporter - uses: dorny/test-reporter@v1.9.1 - if: success() || failure() - with: - name: Test Report for ${{ matrix.os }} - path: target/surefire-reports/TEST-*.xml - reporter: java-junit + - name: Dorny Test Reporter + uses: dorny/test-reporter@v1.9.1 + if: success() || failure() + with: + name: Test Report for ${{ matrix.os }} + path: target/surefire-reports/TEST-*.xml + reporter: java-junit - - name: Load Allure test report history - uses: actions/checkout@v4 - if: always() - continue-on-error: true - with: - ref: gh-pages - path: gh-pages + - name: Load Allure test report history + uses: actions/checkout@v4 + if: always() + continue-on-error: true + with: + ref: gh-pages + path: gh-pages - - name: Build Allure test report - uses: simple-elf/allure-report-action@v1.7 - if: ${{ matrix.os == 'ubuntu-latest' }} - with: - gh_pages: gh-pages - allure_history: allure-history - allure_results: target/allure-results + - name: Build Allure test report + uses: simple-elf/allure-report-action@v1.7 + if: ${{ matrix.os == 'ubuntu-latest' }} + with: + gh_pages: gh-pages + allure_history: allure-history + allure_results: target/allure-results - - name: Publish Allure test report - uses: peaceiris/actions-gh-pages@v3 - if: ${{ matrix.os == 'ubuntu-latest' }} - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_branch: gh-pages - publish_dir: allure-history + - name: Publish Allure test report + uses: peaceiris/actions-gh-pages@v3 + if: ${{ matrix.os == 'ubuntu-latest' }} + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: allure-history diff --git a/README.md b/README.md index 93762c7..5867777 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # LUMAJavaSeleniumTestNGAllure + [![Java CI with Maven](https://github.com/ArinaJur/LUMAJavaSeleniumTestNGAllure/actions/workflows/build.yml/badge.svg)](https://github.com/ArinaJur/LUMAJavaSeleniumTestNGAllure/actions/workflows/build.yml) diff --git a/pom.xml b/pom.xml index b3d372e..547d541 100644 --- a/pom.xml +++ b/pom.xml @@ -71,9 +71,8 @@ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" - - testng.xml - + testng.xml + smoke.xml diff --git a/smoke.xml b/smoke.xml new file mode 100644 index 0000000..b649ea3 --- /dev/null +++ b/smoke.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/lumatest/model/BagsPage.java b/src/main/java/com/lumatest/model/BagsPage.java index 962262e..35f2306 100644 --- a/src/main/java/com/lumatest/model/BagsPage.java +++ b/src/main/java/com/lumatest/model/BagsPage.java @@ -5,17 +5,17 @@ import org.openqa.selenium.WebDriver; public class BagsPage extends SideMenu { - private final String productNameXpath = "//img[@alt='"; + private final String productNameXpath = "//img[@alt='"; - protected BagsPage(WebDriver driver) { - super(driver); - } + protected BagsPage(WebDriver driver) { + super(driver); + } - @Step("Click '{productName}' Img.") - public ProductPage clickProductImg(String productName) { - String imgXpath = productNameXpath + productName + "']"; - getDriver().findElement(By.xpath(imgXpath)).click(); + @Step("Click '{productName}' Img.") + public ProductPage clickProductImg(String productName) { + String imgXpath = productNameXpath + productName + "']"; + getDriver().findElement(By.xpath(imgXpath)).click(); - return new ProductPage(getDriver()); - } + return new ProductPage(getDriver()); + } } diff --git a/src/main/java/com/lumatest/model/BasePage.java b/src/main/java/com/lumatest/model/BasePage.java index 4c3b356..5357d79 100644 --- a/src/main/java/com/lumatest/model/BasePage.java +++ b/src/main/java/com/lumatest/model/BasePage.java @@ -7,23 +7,23 @@ import java.time.Duration; abstract class BasePage { - private final WebDriver driver; - private WebDriverWait wait; + private final WebDriver driver; + private WebDriverWait wait; - protected BasePage(WebDriver driver) { - this.driver = driver; - PageFactory.initElements(driver, this); - } - - protected WebDriver getDriver() { - return this.driver; - } + protected BasePage(WebDriver driver) { + this.driver = driver; + PageFactory.initElements(driver, this); + } - protected WebDriverWait getWait() { - if(wait == null) { - this.wait = new WebDriverWait(driver, Duration.ofSeconds(10)); - } + protected WebDriver getDriver() { + return this.driver; + } - return wait; + protected WebDriverWait getWait() { + if (wait == null) { + this.wait = new WebDriverWait(driver, Duration.ofSeconds(10)); } + + return wait; + } } diff --git a/src/main/java/com/lumatest/model/BreadcrumbsMenu.java b/src/main/java/com/lumatest/model/BreadcrumbsMenu.java index 4cbf5b2..77faef0 100644 --- a/src/main/java/com/lumatest/model/BreadcrumbsMenu.java +++ b/src/main/java/com/lumatest/model/BreadcrumbsMenu.java @@ -7,16 +7,16 @@ import org.openqa.selenium.support.ui.ExpectedConditions; abstract class BreadcrumbsMenu extends TopMenu { - @FindBy(xpath = "//ul[@class='items']") - private WebElement breadcrumbsMenu; + @FindBy(xpath = "//ul[@class='items']") + private WebElement breadcrumbsMenu; - protected BreadcrumbsMenu(WebDriver driver) { - super(driver); - } + protected BreadcrumbsMenu(WebDriver driver) { + super(driver); + } - @Step("Collect Breadcrumbs Menu Text.") - public String getBreadcrumbsMenuText() { + @Step("Collect Breadcrumbs Menu Text.") + public String getBreadcrumbsMenuText() { - return getWait().until(ExpectedConditions.visibilityOf(breadcrumbsMenu)).getText(); - } + return getWait().until(ExpectedConditions.visibilityOf(breadcrumbsMenu)).getText(); + } } diff --git a/src/main/java/com/lumatest/model/GearPage.java b/src/main/java/com/lumatest/model/GearPage.java index ae77536..449b34c 100644 --- a/src/main/java/com/lumatest/model/GearPage.java +++ b/src/main/java/com/lumatest/model/GearPage.java @@ -4,7 +4,7 @@ public class GearPage extends SideMenu { - protected GearPage(WebDriver driver) { - super(driver); - } + protected GearPage(WebDriver driver) { + super(driver); + } } diff --git a/src/main/java/com/lumatest/model/HomePage.java b/src/main/java/com/lumatest/model/HomePage.java index e9cf172..5e54f98 100644 --- a/src/main/java/com/lumatest/model/HomePage.java +++ b/src/main/java/com/lumatest/model/HomePage.java @@ -4,7 +4,7 @@ public class HomePage extends TopMenu { - public HomePage(WebDriver driver) { - super(driver); - } + public HomePage(WebDriver driver) { + super(driver); + } } \ No newline at end of file diff --git a/src/main/java/com/lumatest/model/ProductPage.java b/src/main/java/com/lumatest/model/ProductPage.java index 9a5fc80..14684c5 100644 --- a/src/main/java/com/lumatest/model/ProductPage.java +++ b/src/main/java/com/lumatest/model/ProductPage.java @@ -6,16 +6,16 @@ import org.openqa.selenium.support.FindBy; public class ProductPage extends BreadcrumbsMenu { - @FindBy(xpath = "//span[@data-ui-id='page-title-wrapper']") - private WebElement productName; + @FindBy(xpath = "//span[@data-ui-id='page-title-wrapper']") + private WebElement productName; - protected ProductPage(WebDriver driver) { - super(driver); - } + protected ProductPage(WebDriver driver) { + super(driver); + } - @Step("Collect Actual Product Name Text.") - public String getProductNameText() { + @Step("Collect Actual Product Name Text.") + public String getProductNameText() { - return productName.getText(); - } + return productName.getText(); + } } diff --git a/src/main/java/com/lumatest/model/SideMenu.java b/src/main/java/com/lumatest/model/SideMenu.java index f1934e4..22e21d7 100644 --- a/src/main/java/com/lumatest/model/SideMenu.java +++ b/src/main/java/com/lumatest/model/SideMenu.java @@ -7,17 +7,17 @@ abstract class SideMenu extends BreadcrumbsMenu { - @FindBy(linkText = "Bags") - private WebElement bagsSideMenu; + @FindBy(linkText = "Bags") + private WebElement bagsSideMenu; - protected SideMenu(WebDriver driver) { - super(driver); - } + protected SideMenu(WebDriver driver) { + super(driver); + } - @Step("Click Bags Side Menu.") - public BagsPage clickBagsSideMenu() { - bagsSideMenu.click(); + @Step("Click Bags Side Menu.") + public BagsPage clickBagsSideMenu() { + bagsSideMenu.click(); - return new BagsPage(getDriver()); - } + return new BagsPage(getDriver()); + } } diff --git a/src/main/java/com/lumatest/model/TopMenu.java b/src/main/java/com/lumatest/model/TopMenu.java index a473ad4..ae5eae6 100644 --- a/src/main/java/com/lumatest/model/TopMenu.java +++ b/src/main/java/com/lumatest/model/TopMenu.java @@ -1,23 +1,23 @@ package com.lumatest.model; +import io.qameta.allure.Step; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; -import io.qameta.allure.Step; abstract class TopMenu extends BasePage { - @FindBy(linkText = "Gear") - private WebElement gearTopMenu; + @FindBy(linkText = "Gear") + private WebElement gearTopMenu; - protected TopMenu(WebDriver driver) { - super(driver); - } + protected TopMenu(WebDriver driver) { + super(driver); + } - @Step("Click Gear Top Menu.") - public GearPage clickGearTopMenu() { - gearTopMenu.click(); + @Step("Click Gear Top Menu.") + public GearPage clickGearTopMenu() { + gearTopMenu.click(); - return new GearPage(getDriver()); - } + return new GearPage(getDriver()); + } } diff --git a/src/test/java/FrameworkTest.java b/src/test/java/FrameworkTest.java index e2b35e3..aa0dcf5 100644 --- a/src/test/java/FrameworkTest.java +++ b/src/test/java/FrameworkTest.java @@ -3,16 +3,16 @@ import org.testng.annotations.Test; public class FrameworkTest { - @Test - public void testPass() { + @Test + public void testPass() { - Assert.assertTrue(true); - } + Assert.assertTrue(true); + } - @Ignore - @Test - public void testFail() { + @Ignore + @Test + public void testFail() { - Assert.assertTrue(false); - } + Assert.assertTrue(false); + } } diff --git a/src/test/java/com/lumatest/base/BaseTest.java b/src/test/java/com/lumatest/base/BaseTest.java index b77f09d..537944d 100644 --- a/src/test/java/com/lumatest/base/BaseTest.java +++ b/src/test/java/com/lumatest/base/BaseTest.java @@ -9,53 +9,53 @@ import org.testng.annotations.*; public abstract class BaseTest { - private WebDriver driver; + private WebDriver driver; - @BeforeSuite - protected void setupWebDriverManager() { - WebDriverManager.chromedriver().setup(); + @BeforeSuite + protected void setupWebDriverManager() { + WebDriverManager.chromedriver().setup(); // WebDriverManager.firefoxdriver().setup(); // WebDriverManager.edgedriver().setup(); // WebDriverManager.operadriver().setup(); // WebDriverManager.chromiumdriver().setup(); // WebDriverManager.iedriver().setup(); - } - - @Parameters("browser") - @BeforeMethod() - protected void setupDriver(@Optional("chrome") String browser, ITestResult result) { - Reporter.log("______________________________________________________________________", true); - Reporter.log("RUN " + result.getMethod().getMethodName(), true); + } - this.driver = DriverUtils.createDriver(browser, this.driver); + @Parameters("browser") + @BeforeMethod(alwaysRun = true) + protected void setupDriver(@Optional("chrome") String browser, ITestResult result) { + Reporter.log("______________________________________________________________________", true); + Reporter.log("RUN " + result.getMethod().getMethodName(), true); - if (getDriver() == null) { - Reporter.log("ERROR: Unknown parameter 'browser' - '" + browser + "'.", true); + this.driver = DriverUtils.createDriver(browser, this.driver); - System.exit(1); - } + if (getDriver() == null) { + Reporter.log("ERROR: Unknown parameter 'browser' - '" + browser + "'.", true); - Reporter.log("INFO: " + browser.toUpperCase() + " driver created.", true); + System.exit(1); } - @Parameters("browser") - @AfterMethod(alwaysRun = true) - protected void tearDown(@Optional("chrome") String browser, ITestResult result) { - Reporter.log(result.getMethod().getMethodName() + ": " + ReportUtils.getTestStatus(result), - true); + Reporter.log("INFO: " + browser.toUpperCase() + " driver created.", true); + } - if (getDriver() != null) { - getDriver().quit(); - Reporter.log("INFO: " + browser.toUpperCase() + " driver closed.", true); + @Parameters("browser") + @AfterMethod(alwaysRun = true) + protected void tearDown(@Optional("chrome") String browser, ITestResult result) { + Reporter.log(result.getMethod().getMethodName() + ": " + ReportUtils.getTestStatus(result), + true); - this.driver = null; - } else { - Reporter.log("INFO: Driver is null.", true); - } - } + if (getDriver() != null) { + getDriver().quit(); + Reporter.log("INFO: " + browser.toUpperCase() + " driver closed.", true); - protected WebDriver getDriver() { - return this.driver; + this.driver = null; + } else { + Reporter.log("INFO: Driver is null.", true); } + } + + protected WebDriver getDriver() { + return this.driver; + } } diff --git a/src/test/java/com/lumatest/data/TestData.java b/src/test/java/com/lumatest/data/TestData.java index b8e1658..9b23f6f 100644 --- a/src/test/java/com/lumatest/data/TestData.java +++ b/src/test/java/com/lumatest/data/TestData.java @@ -4,30 +4,30 @@ import org.testng.annotations.DataProvider; public class TestData { - public static final String BASE_URL = "https://magento.softwaretestingboard.com"; - public static final String BASE_URL_TITLE = "Home Page"; + public static final String BASE_URL = "https://magento.softwaretestingboard.com"; + public static final String BASE_URL_TITLE = "Home Page"; - public static class NavMenuData { - public static final By WHATS_NEW_MENU = By.xpath("//nav//span[text()=\"What's New\"]"); - public static final String WHATS_NEW_URL = BASE_URL + "/what-is-new.html"; - public static final String WHATS_NEW_TITLE = "What's New"; - } + public static class NavMenuData { + public static final By WHATS_NEW_MENU = By.xpath("//nav//span[text()=\"What's New\"]"); + public static final String WHATS_NEW_URL = BASE_URL + "/what-is-new.html"; + public static final String WHATS_NEW_TITLE = "What's New"; + } - //all others menus + //all others menus - public static final By SALE_MENU = By.xpath("//nav//span[text()='Sale']"); - public static final String SALE_URL = BASE_URL + "/sale.html"; - public static final String SALE_TITLE = "Sale"; + public static final By SALE_MENU = By.xpath("//nav//span[text()='Sale']"); + public static final String SALE_URL = BASE_URL + "/sale.html"; + public static final String SALE_TITLE = "Sale"; - @DataProvider(name = "navigationData") - public static Object[][] getNavMenuData() { - return new Object[][] { - {BASE_URL, NavMenuData.WHATS_NEW_MENU, NavMenuData.WHATS_NEW_URL, NavMenuData.WHATS_NEW_TITLE}, - {BASE_URL, SALE_MENU, SALE_URL, SALE_TITLE} - }; - } + @DataProvider(name = "navigationData") + public static Object[][] getNavMenuData() { + return new Object[][]{ + {BASE_URL, NavMenuData.WHATS_NEW_MENU, NavMenuData.WHATS_NEW_URL, NavMenuData.WHATS_NEW_TITLE}, + {BASE_URL, SALE_MENU, SALE_URL, SALE_TITLE} + }; + } - //ProductPage - public static final String DRIVEN_BACKPACK_PRODUCT_NAME = "Driven Backpack"; - public static final String DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU = "Home Gear Bags Driven Backpack"; + //ProductPage + public static final String DRIVEN_BACKPACK_PRODUCT_NAME = "Driven Backpack"; + public static final String DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU = "Home Gear Bags Driven Backpack"; } diff --git a/src/test/java/com/lumatest/test/NavigationTest.java b/src/test/java/com/lumatest/test/NavigationTest.java index 614ba7e..310d086 100644 --- a/src/test/java/com/lumatest/test/NavigationTest.java +++ b/src/test/java/com/lumatest/test/NavigationTest.java @@ -9,61 +9,61 @@ public class NavigationTest extends BaseTest { - @Test( - description = "TC-01 Open Base URL", - groups = {"Smoke", "Regression"}, - testName = "NAVIGATION | Open Base URL" - ) - @Story("Navigation") - @Severity(SeverityLevel.BLOCKER) - @Description("To verify that the base URL and title of the application are correct and as expected.") - @Link(TestData.BASE_URL) - public void testOpenBaseURL() { - Allure.step("Set up expected results."); - final String expectedURL = TestData.BASE_URL + "/"; - final String expectedTitle = TestData.BASE_URL_TITLE; + @Test( + testName = "NAVIGATION | Open Base URL", + description = "TC-01 Open Base URL", + groups = {"smoke", "regression"} + ) + @Story("Navigation") + @Severity(SeverityLevel.BLOCKER) + @Description("To verify that the base URL and title of the application are correct and as expected.") + @Link(TestData.BASE_URL) + public void testOpenBaseURL() { + Allure.step("Set up expected results."); + final String expectedURL = TestData.BASE_URL + "/"; + final String expectedTitle = TestData.BASE_URL_TITLE; - Allure.step("Open base URL."); - getDriver().get(TestData.BASE_URL); + Allure.step("Open base URL."); + getDriver().get(TestData.BASE_URL); - Allure.step("Collect actual URL and actual title."); - final String actualURL = getDriver().getCurrentUrl(); - final String actualTitle = getDriver().getTitle(); + Allure.step("Collect actual URL and actual title."); + final String actualURL = getDriver().getCurrentUrl(); + final String actualTitle = getDriver().getTitle(); - Allure.step("Verify that the actual URL is as expected."); - Assert.assertEquals(actualURL, expectedURL); - Allure.step("Verify that the actual title is as expected."); - Assert.assertEquals(actualTitle, expectedTitle); - } + Allure.step("Verify that the actual URL is as expected."); + Assert.assertEquals(actualURL, expectedURL); + Allure.step("Verify that the actual title is as expected."); + Assert.assertEquals(actualTitle, expectedTitle); + } - @Test( - groups = {"Smoke", "Regression"}, - description = "TC-02 Top Menu Navigation", - dataProvider = "navigationData", - dataProviderClass = TestData.class, - testName = "NAVIGATION | Navigate to top menus" - ) - @Story("Navigation") - @Severity(SeverityLevel.CRITICAL) - @Description("To verify that the top menu navigation on the website functions correctly by ensuring that " + - "clicking on menu items directs the user to the expected URL with the expected title.") - @Link(TestData.BASE_URL) - public void testNavigationMenu(String baseURL, By navbarMenu, String expectedURL, String expectedTitle) { - // {BASE_URL, WHATS_NEW_MENU, WHATS_NEW_URL, WHATS_NEW_TITLE}, - //{BASE_URL, SALE_MENU, SALE_URL, SALE_TITLE} - Allure.step("Open Base URL"); - getDriver().get(baseURL); + @Test( + testName = "NAVIGATION | Navigate via top menus", + description = "TC-02 Top Menu Navigation", + dataProvider = "navigationData", + dataProviderClass = TestData.class, + groups = {"smoke", "regression"} + ) + @Story("Navigation") + @Severity(SeverityLevel.CRITICAL) + @Description("To verify that the top menu navigation on the website functions correctly by ensuring that " + + "clicking on menu items directs the user to the expected URL with the expected title.") + @Link(TestData.BASE_URL) + public void testNavigationMenu(String baseURL, By navbarMenu, String expectedURL, String expectedTitle) { + // {BASE_URL, WHATS_NEW_MENU, WHATS_NEW_URL, WHATS_NEW_TITLE}, + //{BASE_URL, SALE_MENU, SALE_URL, SALE_TITLE} + Allure.step("Open Base URL"); + getDriver().get(baseURL); - Allure.step("Click on " + navbarMenu.toString()); - getDriver().findElement(navbarMenu).click(); + Allure.step("Click on " + navbarMenu.toString()); + getDriver().findElement(navbarMenu).click(); - Allure.step("Collect actualURL, actualTitle"); - final String actualURL = getDriver().getCurrentUrl(); - final String actualTitle = getDriver().getTitle(); + Allure.step("Collect actualURL, actualTitle"); + final String actualURL = getDriver().getCurrentUrl(); + final String actualTitle = getDriver().getTitle(); - Allure.step("Verify actualURL as expected"); - Assert.assertEquals(actualURL, expectedURL); - Allure.step("Verify actualTitle as expected"); - Assert.assertEquals(actualTitle, expectedTitle); - } + Allure.step("Verify actualURL as expected"); + Assert.assertEquals(actualURL, expectedURL); + Allure.step("Verify actualTitle as expected"); + Assert.assertEquals(actualTitle, expectedTitle); + } } diff --git a/src/test/java/com/lumatest/test/ProductPageTest.java b/src/test/java/com/lumatest/test/ProductPageTest.java index 46546ef..f5e6e35 100644 --- a/src/test/java/com/lumatest/test/ProductPageTest.java +++ b/src/test/java/com/lumatest/test/ProductPageTest.java @@ -10,27 +10,27 @@ public class ProductPageTest extends BaseTest { - @Test - public void testProduct() { - Allure.step("Open Base URL."); - getDriver().get(TestData.BASE_URL); + @Test + public void testProduct() { + Allure.step("Open Base URL."); + getDriver().get(TestData.BASE_URL); - ProductPage productPage = new HomePage(getDriver()) - .clickGearTopMenu() - .clickBagsSideMenu() - .clickProductImg(TestData.DRIVEN_BACKPACK_PRODUCT_NAME); + ProductPage productPage = new HomePage(getDriver()) + .clickGearTopMenu() + .clickBagsSideMenu() + .clickProductImg(TestData.DRIVEN_BACKPACK_PRODUCT_NAME); - final String productName = productPage.getProductNameText(); - final String breadcrumbsMenuText = productPage.getBreadcrumbsMenuText(); + final String productName = productPage.getProductNameText(); + final String breadcrumbsMenuText = productPage.getBreadcrumbsMenuText(); - Allure.step( - "Verify actual '" + productName + "' equals to '" + TestData.DRIVEN_BACKPACK_PRODUCT_NAME + "'" - ); - Assert.assertEquals(productName, TestData.DRIVEN_BACKPACK_PRODUCT_NAME); + Allure.step( + "Verify actual '" + productName + "' equals to '" + TestData.DRIVEN_BACKPACK_PRODUCT_NAME + "'" + ); + Assert.assertEquals(productName, TestData.DRIVEN_BACKPACK_PRODUCT_NAME); - Allure.step( - "Verify actual '" + breadcrumbsMenuText + "' equals to '" + TestData.DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU + "'" - ); - Assert.assertEquals(breadcrumbsMenuText, TestData.DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU); - } + Allure.step( + "Verify actual '" + breadcrumbsMenuText + "' equals to '" + TestData.DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU + "'" + ); + Assert.assertEquals(breadcrumbsMenuText, TestData.DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU); + } } diff --git a/src/test/java/com/lumatest/utils/DriverUtils.java b/src/test/java/com/lumatest/utils/DriverUtils.java index 31e84cd..10cec68 100644 --- a/src/test/java/com/lumatest/utils/DriverUtils.java +++ b/src/test/java/com/lumatest/utils/DriverUtils.java @@ -10,84 +10,84 @@ import java.util.Map; public class DriverUtils { - private static final ChromeOptions chromeOptions; - private static final FirefoxOptions firefoxOptions; - private static final ChromiumOptions chromiumOptions; + private static final ChromeOptions chromeOptions; + private static final FirefoxOptions firefoxOptions; + private static final ChromiumOptions chromiumOptions; - static { - chromeOptions = new ChromeOptions(); - chromeOptions.addArguments("--incognito"); - chromeOptions.addArguments("--headless"); - chromeOptions.addArguments("--window-size=1920,1080"); - chromeOptions.addArguments("--disable-gpu"); - chromeOptions.addArguments("--no-sandbox"); - chromeOptions.addArguments("--disable-dev-shm-usage"); - chromeOptions.addArguments("--disable-web-security"); - chromeOptions.addArguments("--allow-running-insecure-content"); - chromeOptions.addArguments("--ignore-certificate-errors"); + static { + chromeOptions = new ChromeOptions(); + chromeOptions.addArguments("--incognito"); + chromeOptions.addArguments("--headless"); + chromeOptions.addArguments("--window-size=1920,1080"); + chromeOptions.addArguments("--disable-gpu"); + chromeOptions.addArguments("--no-sandbox"); + chromeOptions.addArguments("--disable-dev-shm-usage"); + chromeOptions.addArguments("--disable-web-security"); + chromeOptions.addArguments("--allow-running-insecure-content"); + chromeOptions.addArguments("--ignore-certificate-errors"); - firefoxOptions = new FirefoxOptions(); - firefoxOptions.addArguments("--incognito"); - firefoxOptions.addArguments("--headless"); - firefoxOptions.addArguments("--window-size=1920,1080"); - firefoxOptions.addArguments("--disable-gpu"); - firefoxOptions.addArguments("--no-sandbox"); - firefoxOptions.addArguments("--disable-dev-shm-usage"); - firefoxOptions.addArguments("--disable-web-security"); - firefoxOptions.addArguments("--allow-running-insecure-content"); - firefoxOptions.addArguments("--ignore-certificate-errors"); + firefoxOptions = new FirefoxOptions(); + firefoxOptions.addArguments("--incognito"); + firefoxOptions.addArguments("--headless"); + firefoxOptions.addArguments("--window-size=1920,1080"); + firefoxOptions.addArguments("--disable-gpu"); + firefoxOptions.addArguments("--no-sandbox"); + firefoxOptions.addArguments("--disable-dev-shm-usage"); + firefoxOptions.addArguments("--disable-web-security"); + firefoxOptions.addArguments("--allow-running-insecure-content"); + firefoxOptions.addArguments("--ignore-certificate-errors"); - chromiumOptions = chromeOptions; - } - - private static WebDriver createChromeDriver(WebDriver driver) { - if (driver != null) { - driver.quit(); - } - ChromeDriver chromeDriver = new ChromeDriver(chromeOptions); - chromeDriver.executeCdpCommand("Network.enable", Map.of()); - chromeDriver.executeCdpCommand( - "Network.setExtraHTTPHeaders", Map.of("headers", Map.of("accept-language", "en-US,en;q=0.9")) - ); + chromiumOptions = chromeOptions; + } - return chromeDriver ; + private static WebDriver createChromeDriver(WebDriver driver) { + if (driver != null) { + driver.quit(); } + ChromeDriver chromeDriver = new ChromeDriver(chromeOptions); + chromeDriver.executeCdpCommand("Network.enable", Map.of()); + chromeDriver.executeCdpCommand( + "Network.setExtraHTTPHeaders", Map.of("headers", Map.of("accept-language", "en-US,en;q=0.9")) + ); - private static WebDriver createChromiumDriver(WebDriver driver) { - if (driver != null) { - driver.quit(); - } - ChromeDriver chromeDriver = new ChromeDriver((ChromeOptions) chromiumOptions); - chromeDriver.executeCdpCommand("Network.enable", Map.of()); - chromeDriver.executeCdpCommand( - "Network.setExtraHTTPHeaders", Map.of("headers", Map.of("accept-language", "en-US,en;q=0.9")) - ); + return chromeDriver; + } - return chromeDriver ; + private static WebDriver createChromiumDriver(WebDriver driver) { + if (driver != null) { + driver.quit(); } + ChromeDriver chromeDriver = new ChromeDriver((ChromeOptions) chromiumOptions); + chromeDriver.executeCdpCommand("Network.enable", Map.of()); + chromeDriver.executeCdpCommand( + "Network.setExtraHTTPHeaders", Map.of("headers", Map.of("accept-language", "en-US,en;q=0.9")) + ); - private static WebDriver createFirefoxDriver(WebDriver driver) { - if (driver != null) { - driver.quit(); - } + return chromeDriver; + } - return new FirefoxDriver(firefoxOptions); + private static WebDriver createFirefoxDriver(WebDriver driver) { + if (driver != null) { + driver.quit(); } - public static WebDriver createDriver(String browser, WebDriver driver) { - switch(browser) { - case "chrome" -> { - return createChromeDriver(driver); - } - case "firefox" -> { - return createFirefoxDriver(driver); - } - case "chromium" -> { - return createChromiumDriver(driver); - } - default -> { - return null; - } - } + return new FirefoxDriver(firefoxOptions); + } + + public static WebDriver createDriver(String browser, WebDriver driver) { + switch (browser) { + case "chrome" -> { + return createChromeDriver(driver); + } + case "firefox" -> { + return createFirefoxDriver(driver); + } + case "chromium" -> { + return createChromiumDriver(driver); + } + default -> { + return null; + } } + } } diff --git a/src/test/java/com/lumatest/utils/ReportUtils.java b/src/test/java/com/lumatest/utils/ReportUtils.java index 83b0b12..604f32f 100644 --- a/src/test/java/com/lumatest/utils/ReportUtils.java +++ b/src/test/java/com/lumatest/utils/ReportUtils.java @@ -3,13 +3,13 @@ import org.testng.ITestResult; public class ReportUtils { - public static String getTestStatus(ITestResult result) { - if (result.getStatus() == 1) { - return "PASS"; - } else if(result.getStatus() == 2) { - return "FAIL"; - } - - return "UNKNOWN"; + public static String getTestStatus(ITestResult result) { + if (result.getStatus() == 1) { + return "PASS"; + } else if (result.getStatus() == 2) { + return "FAIL"; } + + return "UNKNOWN"; + } } diff --git a/testng.xml b/testng.xml index 2e8eba5..3d42563 100644 --- a/testng.xml +++ b/testng.xml @@ -1,26 +1,26 @@ - + - + - + - + - - - - - - + + + + + + \ No newline at end of file From 8afd245e8a804242f52f9b8d5ceb8046b108802f Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 18:13:35 -0400 Subject: [PATCH 02/33] add codestyle check --- .github/workflows/build.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dbeeb4a..df1e0e9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,3 +80,17 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: gh-pages publish_dir: allure-history + + check-java-code-style: + name: Check Java code style + + runs-on: ubuntu-latest + + steps: + - name: Clone code from repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run java checkstyle + uses: nikitasavinov/checkstyle-action@0.6.0 \ No newline at end of file From 347edaa91d48b5ba743926861df153da6b844525 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 18:27:57 -0400 Subject: [PATCH 03/33] build first --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df1e0e9..bbea9f1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn -B package --file pom.xml + run: mvn clean install -DskipTests=true - name: Test with Maven run: mvn test From 901a680d3853862fafbcd829976c9ffeeb8f349e Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 18:52:37 -0400 Subject: [PATCH 04/33] Clean code --- src/main/java/com/lumatest/model/BagsPage.java | 2 +- src/main/java/com/lumatest/model/BasePage.java | 3 +-- src/test/java/com/lumatest/base/BaseTest.java | 17 ++++++++++------- .../java/com/lumatest/test/NavigationTest.java | 7 ++++++- .../java/com/lumatest/test/ProductPageTest.java | 14 +++++++++----- .../java/com/lumatest/utils/DriverUtils.java | 3 +-- 6 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/lumatest/model/BagsPage.java b/src/main/java/com/lumatest/model/BagsPage.java index 35f2306..58d5fde 100644 --- a/src/main/java/com/lumatest/model/BagsPage.java +++ b/src/main/java/com/lumatest/model/BagsPage.java @@ -5,7 +5,6 @@ import org.openqa.selenium.WebDriver; public class BagsPage extends SideMenu { - private final String productNameXpath = "//img[@alt='"; protected BagsPage(WebDriver driver) { super(driver); @@ -13,6 +12,7 @@ protected BagsPage(WebDriver driver) { @Step("Click '{productName}' Img.") public ProductPage clickProductImg(String productName) { + String productNameXpath = "//img[@alt='"; String imgXpath = productNameXpath + productName + "']"; getDriver().findElement(By.xpath(imgXpath)).click(); diff --git a/src/main/java/com/lumatest/model/BasePage.java b/src/main/java/com/lumatest/model/BasePage.java index 5357d79..cd62968 100644 --- a/src/main/java/com/lumatest/model/BasePage.java +++ b/src/main/java/com/lumatest/model/BasePage.java @@ -1,11 +1,10 @@ package com.lumatest.model; +import java.time.Duration; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.ui.WebDriverWait; -import java.time.Duration; - abstract class BasePage { private final WebDriver driver; private WebDriverWait wait; diff --git a/src/test/java/com/lumatest/base/BaseTest.java b/src/test/java/com/lumatest/base/BaseTest.java index 537944d..ea4cf69 100644 --- a/src/test/java/com/lumatest/base/BaseTest.java +++ b/src/test/java/com/lumatest/base/BaseTest.java @@ -6,7 +6,11 @@ import org.openqa.selenium.WebDriver; import org.testng.ITestResult; import org.testng.Reporter; -import org.testng.annotations.*; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeSuite; +import org.testng.annotations.Optional; +import org.testng.annotations.Parameters; +import org.testng.annotations.AfterMethod; public abstract class BaseTest { private WebDriver driver; @@ -14,12 +18,11 @@ public abstract class BaseTest { @BeforeSuite protected void setupWebDriverManager() { WebDriverManager.chromedriver().setup(); -// WebDriverManager.firefoxdriver().setup(); - -// WebDriverManager.edgedriver().setup(); -// WebDriverManager.operadriver().setup(); -// WebDriverManager.chromiumdriver().setup(); -// WebDriverManager.iedriver().setup(); +// WebDriverManager.firefoxdriver().setup(); +// WebDriverManager.edgedriver().setup(); +// WebDriverManager.operadriver().setup(); +// WebDriverManager.chromiumdriver().setup(); +// WebDriverManager.iedriver().setup(); } @Parameters("browser") diff --git a/src/test/java/com/lumatest/test/NavigationTest.java b/src/test/java/com/lumatest/test/NavigationTest.java index 310d086..2f57cad 100644 --- a/src/test/java/com/lumatest/test/NavigationTest.java +++ b/src/test/java/com/lumatest/test/NavigationTest.java @@ -2,7 +2,12 @@ import com.lumatest.base.BaseTest; import com.lumatest.data.TestData; -import io.qameta.allure.*; +import io.qameta.allure.Link; +import io.qameta.allure.Description; +import io.qameta.allure.Severity; +import io.qameta.allure.SeverityLevel; +import io.qameta.allure.Story; +import io.qameta.allure.Allure; import org.openqa.selenium.By; import org.testng.Assert; import org.testng.annotations.Test; diff --git a/src/test/java/com/lumatest/test/ProductPageTest.java b/src/test/java/com/lumatest/test/ProductPageTest.java index f5e6e35..ebc0f06 100644 --- a/src/test/java/com/lumatest/test/ProductPageTest.java +++ b/src/test/java/com/lumatest/test/ProductPageTest.java @@ -10,15 +10,19 @@ public class ProductPageTest extends BaseTest { - @Test + @Test( + testName = "PRODUCT | Product Details", + description = "TC-03 Open Base URL" + ) public void testProduct() { Allure.step("Open Base URL."); getDriver().get(TestData.BASE_URL); - ProductPage productPage = new HomePage(getDriver()) - .clickGearTopMenu() - .clickBagsSideMenu() - .clickProductImg(TestData.DRIVEN_BACKPACK_PRODUCT_NAME); + ProductPage productPage = + new HomePage(getDriver()) + .clickGearTopMenu() + .clickBagsSideMenu() + .clickProductImg(TestData.DRIVEN_BACKPACK_PRODUCT_NAME); final String productName = productPage.getProductNameText(); final String breadcrumbsMenuText = productPage.getBreadcrumbsMenuText(); diff --git a/src/test/java/com/lumatest/utils/DriverUtils.java b/src/test/java/com/lumatest/utils/DriverUtils.java index 10cec68..baf4c95 100644 --- a/src/test/java/com/lumatest/utils/DriverUtils.java +++ b/src/test/java/com/lumatest/utils/DriverUtils.java @@ -1,5 +1,6 @@ package com.lumatest.utils; +import java.util.Map; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; @@ -7,8 +8,6 @@ import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; -import java.util.Map; - public class DriverUtils { private static final ChromeOptions chromeOptions; private static final FirefoxOptions firefoxOptions; From 3e24210342794e289fa0c22ccd96378a3bb33d56 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 18:59:24 -0400 Subject: [PATCH 05/33] add firefox testing --- src/test/java/com/lumatest/base/BaseTest.java | 2 +- testng.xml | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/lumatest/base/BaseTest.java b/src/test/java/com/lumatest/base/BaseTest.java index ea4cf69..15802fe 100644 --- a/src/test/java/com/lumatest/base/BaseTest.java +++ b/src/test/java/com/lumatest/base/BaseTest.java @@ -18,7 +18,7 @@ public abstract class BaseTest { @BeforeSuite protected void setupWebDriverManager() { WebDriverManager.chromedriver().setup(); -// WebDriverManager.firefoxdriver().setup(); + WebDriverManager.firefoxdriver().setup(); // WebDriverManager.edgedriver().setup(); // WebDriverManager.operadriver().setup(); // WebDriverManager.chromiumdriver().setup(); diff --git a/testng.xml b/testng.xml index 3d42563..19d59ab 100644 --- a/testng.xml +++ b/testng.xml @@ -1,6 +1,6 @@ - + @@ -17,10 +17,11 @@ - - - - - - + + + + + + + \ No newline at end of file From 67e5f7938c8e404da465c14c97e543be5b45dd42 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:11:34 -0400 Subject: [PATCH 06/33] add setup firefox action --- .github/workflows/build.yml | 4 ++++ testng.xml | 15 ++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bbea9f1..962055d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,6 +46,10 @@ jobs: - name: Build with Maven run: mvn clean install -DskipTests=true + - name: Setup firefox + id: setup-firefox + uses: browser-actions/setup-firefox@v1 + - name: Test with Maven run: mvn test diff --git a/testng.xml b/testng.xml index 19d59ab..26f7f1a 100644 --- a/testng.xml +++ b/testng.xml @@ -17,11 +17,12 @@ - - - - - - - + + + + + + + + \ No newline at end of file From 9b97b8eb8035580b221b1bf2909275adf94aba2e Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:15:10 -0400 Subject: [PATCH 07/33] Update build.yml --- .github/workflows/build.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 962055d..dc0e9a5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,10 +46,6 @@ jobs: - name: Build with Maven run: mvn clean install -DskipTests=true - - name: Setup firefox - id: setup-firefox - uses: browser-actions/setup-firefox@v1 - - name: Test with Maven run: mvn test @@ -97,4 +93,4 @@ jobs: fetch-depth: 0 - name: Run java checkstyle - uses: nikitasavinov/checkstyle-action@0.6.0 \ No newline at end of file + uses: nikitasavinov/checkstyle-action@0.6.0 From 0bbfdc15a6b09d9cd9caeda6c575611d8d2adb99 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:31:46 -0400 Subject: [PATCH 08/33] add test suits --- pom.xml | 4 +++- testng.xml => xmlSuiits/crossBrowser.xml | 8 -------- xmlSuiits/firefox.xml | 11 +++++++++++ xmlSuiits/regression.xml | 17 +++++++++++++++++ smoke.xml => xmlSuiits/smoke.xml | 1 - 5 files changed, 31 insertions(+), 10 deletions(-) rename testng.xml => xmlSuiits/crossBrowser.xml (74%) create mode 100644 xmlSuiits/firefox.xml create mode 100644 xmlSuiits/regression.xml rename smoke.xml => xmlSuiits/smoke.xml (99%) diff --git a/pom.xml b/pom.xml index 547d541..a22f6fb 100644 --- a/pom.xml +++ b/pom.xml @@ -71,8 +71,10 @@ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" - testng.xml + crossBrowser.xml smoke.xml + regression.xml + firefox.xml diff --git a/testng.xml b/xmlSuiits/crossBrowser.xml similarity index 74% rename from testng.xml rename to xmlSuiits/crossBrowser.xml index 26f7f1a..809affb 100644 --- a/testng.xml +++ b/xmlSuiits/crossBrowser.xml @@ -17,12 +17,4 @@ - - - - - - - - \ No newline at end of file diff --git a/xmlSuiits/firefox.xml b/xmlSuiits/firefox.xml new file mode 100644 index 0000000..9cfe841 --- /dev/null +++ b/xmlSuiits/firefox.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/xmlSuiits/regression.xml b/xmlSuiits/regression.xml new file mode 100644 index 0000000..3edd2c3 --- /dev/null +++ b/xmlSuiits/regression.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smoke.xml b/xmlSuiits/smoke.xml similarity index 99% rename from smoke.xml rename to xmlSuiits/smoke.xml index b649ea3..fc94c17 100644 --- a/smoke.xml +++ b/xmlSuiits/smoke.xml @@ -8,7 +8,6 @@ - From b83ffd9cd12f6632ebe7d8283ce8b968168c0da6 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:34:34 -0400 Subject: [PATCH 09/33] change firefox options --- src/test/java/com/lumatest/utils/DriverUtils.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/com/lumatest/utils/DriverUtils.java b/src/test/java/com/lumatest/utils/DriverUtils.java index baf4c95..cd4a22c 100644 --- a/src/test/java/com/lumatest/utils/DriverUtils.java +++ b/src/test/java/com/lumatest/utils/DriverUtils.java @@ -32,9 +32,6 @@ public class DriverUtils { firefoxOptions.addArguments("--disable-gpu"); firefoxOptions.addArguments("--no-sandbox"); firefoxOptions.addArguments("--disable-dev-shm-usage"); - firefoxOptions.addArguments("--disable-web-security"); - firefoxOptions.addArguments("--allow-running-insecure-content"); - firefoxOptions.addArguments("--ignore-certificate-errors"); chromiumOptions = chromeOptions; } From 8e77e6418d45ae35af7a5079ea22befa1a632f57 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:39:35 -0400 Subject: [PATCH 10/33] fix errors --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index a22f6fb..eed3e87 100644 --- a/pom.xml +++ b/pom.xml @@ -71,10 +71,10 @@ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" - crossBrowser.xml - smoke.xml - regression.xml - firefox.xml + xmlSuiits/crossBrowser.xml + xmlSuiits/smoke.xml + xmlSuiits/regression.xml + xmlSuiits/firefox.xml From d60189ba68dfe19692bbf4ee0ba9051cdaea61ef Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:50:09 -0400 Subject: [PATCH 11/33] Fix Errors --- pom.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pom.xml b/pom.xml index eed3e87..8635118 100644 --- a/pom.xml +++ b/pom.xml @@ -72,9 +72,6 @@ xmlSuiits/crossBrowser.xml - xmlSuiits/smoke.xml - xmlSuiits/regression.xml - xmlSuiits/firefox.xml From fe6175aca3e25a2423d717c70d9dfe625f22839c Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:06:45 -0400 Subject: [PATCH 12/33] separate testing steps --- .github/workflows/build.yml | 19 ++++++++++++++++--- src/test/java/FrameworkTest.java | 4 +--- {xmlSuiits => xmlSuits}/crossBrowser.xml | 3 +-- {xmlSuiits => xmlSuits}/firefox.xml | 2 +- xmlSuits/framework.xml | 9 +++++++++ {xmlSuiits => xmlSuits}/regression.xml | 2 +- {xmlSuiits => xmlSuits}/smoke.xml | 0 7 files changed, 29 insertions(+), 10 deletions(-) rename {xmlSuiits => xmlSuits}/crossBrowser.xml (81%) rename {xmlSuiits => xmlSuits}/firefox.xml (79%) create mode 100644 xmlSuits/framework.xml rename {xmlSuiits => xmlSuits}/regression.xml (92%) rename {xmlSuiits => xmlSuits}/smoke.xml (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc0e9a5..682ed84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,8 +46,21 @@ jobs: - name: Build with Maven run: mvn clean install -DskipTests=true - - name: Test with Maven - run: mvn test + - name: Test Framework + run: mvn clean test -DtestSuite="Framework" + + - name: Test All + if: ${{ matrix.os == 'ubuntu-latest' }} + run: + mvn clean test -DtestSuite="CrossBrowser" + mvn clean test -DtestSuite="Firefox" + mvn clean test -DtestSuite="Regression" + mvn clean test -DtestSuite="Smoke" + + - name: Test All + if: ${{ matrix.os != 'ubuntu-latest' }} + run: + mvn clean test -DtestSuite="CrossBrowser" - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 @@ -93,4 +106,4 @@ jobs: fetch-depth: 0 - name: Run java checkstyle - uses: nikitasavinov/checkstyle-action@0.6.0 + uses: nikitasavinov/checkstyle-action@0.6.0 \ No newline at end of file diff --git a/src/test/java/FrameworkTest.java b/src/test/java/FrameworkTest.java index aa0dcf5..026cb39 100644 --- a/src/test/java/FrameworkTest.java +++ b/src/test/java/FrameworkTest.java @@ -9,10 +9,8 @@ public void testPass() { Assert.assertTrue(true); } - @Ignore @Test public void testFail() { - - Assert.assertTrue(false); + Assert.fail(); } } diff --git a/xmlSuiits/crossBrowser.xml b/xmlSuits/crossBrowser.xml similarity index 81% rename from xmlSuiits/crossBrowser.xml rename to xmlSuits/crossBrowser.xml index 809affb..735a0d0 100644 --- a/xmlSuiits/crossBrowser.xml +++ b/xmlSuits/crossBrowser.xml @@ -1,12 +1,11 @@ - + - diff --git a/xmlSuiits/firefox.xml b/xmlSuits/firefox.xml similarity index 79% rename from xmlSuiits/firefox.xml rename to xmlSuits/firefox.xml index 9cfe841..6b63865 100644 --- a/xmlSuiits/firefox.xml +++ b/xmlSuits/firefox.xml @@ -1,6 +1,6 @@ - + diff --git a/xmlSuits/framework.xml b/xmlSuits/framework.xml new file mode 100644 index 0000000..aaf100b --- /dev/null +++ b/xmlSuits/framework.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/xmlSuiits/regression.xml b/xmlSuits/regression.xml similarity index 92% rename from xmlSuiits/regression.xml rename to xmlSuits/regression.xml index 3edd2c3..71e8589 100644 --- a/xmlSuiits/regression.xml +++ b/xmlSuits/regression.xml @@ -7,7 +7,7 @@ - + diff --git a/xmlSuiits/smoke.xml b/xmlSuits/smoke.xml similarity index 100% rename from xmlSuiits/smoke.xml rename to xmlSuits/smoke.xml From 7c18eaa471746b9cae95c077ce9b520648af7781 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:09:13 -0400 Subject: [PATCH 13/33] fix typo --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8635118..75fef6f 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" - xmlSuiits/crossBrowser.xml + xmlSuits/crossBrowser.xml From 5f78528324c7e7b37ebeb9b4939a5da8d7a6d85b Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:14:36 -0400 Subject: [PATCH 14/33] fix .yml --- .github/workflows/build.yml | 43 +++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 682ed84..be2a8fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,5 @@ +--- name: Java CI with Maven - on: pull_request: branches: main @@ -18,8 +18,11 @@ jobs: strategy: max-parallel: 4 matrix: - os: [ ubuntu-latest, windows-latest, macos-latest ] - + os: + - ubuntu-latest + - windows-latest + - macos-latest + - runs-on: ${{ matrix.os }} steps: @@ -31,8 +34,8 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: '17' - distribution: 'corretto' + java-version: "17" + distribution: corretto cache: maven - name: Cache m2 dependencies @@ -51,16 +54,13 @@ jobs: - name: Test All if: ${{ matrix.os == 'ubuntu-latest' }} - run: - mvn clean test -DtestSuite="CrossBrowser" - mvn clean test -DtestSuite="Firefox" - mvn clean test -DtestSuite="Regression" - mvn clean test -DtestSuite="Smoke" + run: mvn clean test -DtestSuite="CrossBrowser" mvn clean test + -DtestSuite="Firefox" mvn clean test -DtestSuite="Regression" mvn + clean test -DtestSuite="Smoke" - - name: Test All - if: ${{ matrix.os != 'ubuntu-latest' }} - run: - mvn clean test -DtestSuite="CrossBrowser" + - name: Test Cross Browser + if: ${{ matrix.os != 'ubuntu-latest' }} + run: mvn clean test -DtestSuite="CrossBrowser" - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 @@ -96,14 +96,11 @@ jobs: check-java-code-style: name: Check Java code style - runs-on: ubuntu-latest - steps: - - name: Clone code from repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Run java checkstyle - uses: nikitasavinov/checkstyle-action@0.6.0 \ No newline at end of file + - name: Clone code from repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Run java checkstyle + uses: nikitasavinov/checkstyle-action@0.6.0 From c0b1e3cf2433866fb62fdbff97fda1923fe41356 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:16:34 -0400 Subject: [PATCH 15/33] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index be2a8fe..836fc8c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - ubuntu-latest - windows-latest - macos-latest - - + runs-on: ${{ matrix.os }} steps: From f60200cf30ea672773f85c86f46d02c8da707b92 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:35:03 -0400 Subject: [PATCH 16/33] Separate FirefoxTest --- .github/workflows/build.yml | 13 +++++-------- pom.xml | 3 +++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 836fc8c..f8f9096 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,15 +52,12 @@ jobs: - name: Test Framework run: mvn clean test -DtestSuite="Framework" - - name: Test All - if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean test -DtestSuite="CrossBrowser" mvn clean test - -DtestSuite="Firefox" mvn clean test -DtestSuite="Regression" mvn - clean test -DtestSuite="Smoke" + - name: Test with Maven + run: mvn clean test - - name: Test Cross Browser - if: ${{ matrix.os != 'ubuntu-latest' }} - run: mvn clean test -DtestSuite="CrossBrowser" + - name: Test Firefox + if: ${{ matrix.os == 'ubuntu-latest' }} + run: mvn clean test -DtestSuite="FirefoxTest" - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 diff --git a/pom.xml b/pom.xml index 75fef6f..d3048b6 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,9 @@ xmlSuits/crossBrowser.xml + xmlSuits/framework.xml + xmlSuits/regression.xml + xmlSuits/smoke.xml From 96466bd87852dedb6b8edfe84786afc0540fe12e Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 20:57:35 -0400 Subject: [PATCH 17/33] change test order --- .github/workflows/build.yml | 6 +++--- src/test/java/FrameworkTest.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8f9096..4d59223 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,17 +47,17 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn clean install -DskipTests=true + run: mvn clean install skipTests=true - name: Test Framework - run: mvn clean test -DtestSuite="Framework" + run: mvn -Dtest=testPass test - name: Test with Maven run: mvn clean test - name: Test Firefox if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean test -DtestSuite="FirefoxTest" + run: mvn clean -DtestSuite="FirefoxTest" test - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 diff --git a/src/test/java/FrameworkTest.java b/src/test/java/FrameworkTest.java index 026cb39..104fc34 100644 --- a/src/test/java/FrameworkTest.java +++ b/src/test/java/FrameworkTest.java @@ -9,6 +9,7 @@ public void testPass() { Assert.assertTrue(true); } + @Ignore @Test public void testFail() { Assert.fail(); From 26838b3b4dab0a7989d5c54b5e204d3d58d24a02 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:15:24 -0400 Subject: [PATCH 18/33] update .yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4d59223..c86b780 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn clean install skipTests=true + run: mvn clean install -Dmaven.test.skip=true - name: Test Framework run: mvn -Dtest=testPass test From f359c3038d53a9d91288573c39efff87de8551a6 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:19:26 -0400 Subject: [PATCH 19/33] update .yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c86b780..c88d690 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn clean install -Dmaven.test.skip=true + run: mvn clean install `-Dmaven.test.skip=true - name: Test Framework run: mvn -Dtest=testPass test From 92d6ce98b10306f26e3a22e502bb6878d2a113cd Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:29:30 -0400 Subject: [PATCH 20/33] Add skip test --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c88d690..67f742a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn clean install `-Dmaven.test.skip=true + run: mvn clean compile package -Dmaven.test.skip=true - name: Test Framework run: mvn -Dtest=testPass test From 3a88ed59bb5f2c3269dfd3096ad159620d21c0bf Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:35:00 -0400 Subject: [PATCH 21/33] Add skip test --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 67f742a..6970afe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: run: mvn clean compile package -Dmaven.test.skip=true - name: Test Framework - run: mvn -Dtest=testPass test + run: mvn test -Dtest=FrameworkTest - name: Test with Maven run: mvn clean test From 57014224b5d23ac5a4786fc4bdbccd822a892100 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:48:53 -0400 Subject: [PATCH 22/33] Add skip test --- .github/workflows/build.yml | 4 ++-- pom.xml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6970afe..9d18752 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,10 +50,10 @@ jobs: run: mvn clean compile package -Dmaven.test.skip=true - name: Test Framework - run: mvn test -Dtest=FrameworkTest + run: mvn clean test -Dtest=FrameworkTest - name: Test with Maven - run: mvn clean test + run: mvn clean package -Dmaven.test.skip=false test - name: Test Firefox if: ${{ matrix.os == 'ubuntu-latest' }} diff --git a/pom.xml b/pom.xml index d3048b6..07cee26 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,8 @@ 2.24.0 1.9.20.1 + + false @@ -67,6 +69,7 @@ maven-surefire-plugin 3.2.5 + ${tests.skip} -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" From 48d872a042441ebd7908cd4ff7d5ec663c7347d0 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:55:02 -0400 Subject: [PATCH 23/33] Add skip test --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9d18752..a1274ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,9 +55,9 @@ jobs: - name: Test with Maven run: mvn clean package -Dmaven.test.skip=false test - - name: Test Firefox - if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean -DtestSuite="FirefoxTest" test +# - name: Test Firefox +# if: ${{ matrix.os == 'ubuntu-latest' }} +# run: mvn clean -DtestSuite="FirefoxTest" test - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 From a0c8713ecb367fd5c5f8dd61a1e6346daf9787c0 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 22:02:32 -0400 Subject: [PATCH 24/33] Add skip test --- .github/workflows/build.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a1274ad..498f5a0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,17 +47,24 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn clean compile package -Dmaven.test.skip=true + if: ${{ matrix.os == 'ubuntu-latest' }} + run: mvn clean compile package -e -Dmaven.test.skip=true - name: Test Framework + if: ${{ matrix.os == 'ubuntu-latest' }} run: mvn clean test -Dtest=FrameworkTest - name: Test with Maven - run: mvn clean package -Dmaven.test.skip=false test + if: ${{ matrix.os == 'ubuntu-latest' }} + run: mvn clean test + + - name: Test with Maven + if: ${{ matrix.os != 'ubuntu-latest' }} + run: mvn -B package --file pom.xml -# - name: Test Firefox -# if: ${{ matrix.os == 'ubuntu-latest' }} -# run: mvn clean -DtestSuite="FirefoxTest" test + - name: Test Firefox + if: ${{ matrix.os == 'ubuntu-latest' }} + run: mvn clean -DtestSuite="FirefoxTest" test - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 From cc15bd1c53ed1ce7ea0dcfafa6a6167931c35c9f Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 22:05:14 -0400 Subject: [PATCH 25/33] Add skip test --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 498f5a0..22bb5d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,8 +59,8 @@ jobs: run: mvn clean test - name: Test with Maven - if: ${{ matrix.os != 'ubuntu-latest' }} - run: mvn -B package --file pom.xml + if: ${{ matrix.os != 'ubuntu-latest' }} + run: mvn -B package --file pom.xml - name: Test Firefox if: ${{ matrix.os == 'ubuntu-latest' }} From 2f0961bdf3c0c9bf5675d4aa5577a58a23454bb8 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 22:10:04 -0400 Subject: [PATCH 26/33] Add skip test --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 22bb5d5..d511921 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: - name: Test Firefox if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean -DtestSuite="FirefoxTest" test + run: mvn clean -DtestSuite=FirefoxTest test - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 From c7384a7754d1c087b85251e577bf10cd8613dfd2 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 23:16:25 -0400 Subject: [PATCH 27/33] Add test Suit Name --- .github/workflows/build.yml | 8 ++++---- pom.xml | 1 - src/test/java/com/lumatest/base/BaseTest.java | 11 +++++------ src/test/java/com/lumatest/data/TestData.java | 1 + src/test/java/com/lumatest/test/ProductPageTest.java | 10 ++++++++-- xmlSuits/framework.xml | 9 --------- xmlSuits/regression.xml | 2 +- 7 files changed, 19 insertions(+), 23 deletions(-) delete mode 100644 xmlSuits/framework.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d511921..5777306 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,14 +58,14 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: mvn clean test + - name: Test Firefox + if: ${{ matrix.os == 'ubuntu-latest' }} + run: mvn clean test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml + - name: Test with Maven if: ${{ matrix.os != 'ubuntu-latest' }} run: mvn -B package --file pom.xml - - name: Test Firefox - if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean -DtestSuite=FirefoxTest test - - name: Dorny Test Reporter uses: dorny/test-reporter@v1.9.1 if: success() || failure() diff --git a/pom.xml b/pom.xml index 07cee26..ef86271 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,6 @@ xmlSuits/crossBrowser.xml - xmlSuits/framework.xml xmlSuits/regression.xml xmlSuits/smoke.xml diff --git a/src/test/java/com/lumatest/base/BaseTest.java b/src/test/java/com/lumatest/base/BaseTest.java index 15802fe..adc5744 100644 --- a/src/test/java/com/lumatest/base/BaseTest.java +++ b/src/test/java/com/lumatest/base/BaseTest.java @@ -4,13 +4,10 @@ import com.lumatest.utils.ReportUtils; import io.github.bonigarcia.wdm.WebDriverManager; import org.openqa.selenium.WebDriver; +import org.testng.ITestContext; import org.testng.ITestResult; import org.testng.Reporter; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.BeforeSuite; -import org.testng.annotations.Optional; -import org.testng.annotations.Parameters; -import org.testng.annotations.AfterMethod; +import org.testng.annotations.*; public abstract class BaseTest { private WebDriver driver; @@ -27,8 +24,10 @@ protected void setupWebDriverManager() { @Parameters("browser") @BeforeMethod(alwaysRun = true) - protected void setupDriver(@Optional("chrome") String browser, ITestResult result) { + protected void setupDriver(@Optional("chrome") String browser, ITestContext context, ITestResult result) { Reporter.log("______________________________________________________________________", true); + + Reporter.log("TEST SUIT: " + context.getCurrentXmlTest().getSuite().getName(), true); Reporter.log("RUN " + result.getMethod().getMethodName(), true); this.driver = DriverUtils.createDriver(browser, this.driver); diff --git a/src/test/java/com/lumatest/data/TestData.java b/src/test/java/com/lumatest/data/TestData.java index 9b23f6f..e18982b 100644 --- a/src/test/java/com/lumatest/data/TestData.java +++ b/src/test/java/com/lumatest/data/TestData.java @@ -28,6 +28,7 @@ public static Object[][] getNavMenuData() { } //ProductPage + public static final String DRIVEN_BACKPACK_PRODUCT_URL = BASE_URL + "/driven-backpack.html"; public static final String DRIVEN_BACKPACK_PRODUCT_NAME = "Driven Backpack"; public static final String DRIVEN_BACKPACK_PRODUCT_PAGE_BREADCRUMBS_MENU = "Home Gear Bags Driven Backpack"; } diff --git a/src/test/java/com/lumatest/test/ProductPageTest.java b/src/test/java/com/lumatest/test/ProductPageTest.java index ebc0f06..af94808 100644 --- a/src/test/java/com/lumatest/test/ProductPageTest.java +++ b/src/test/java/com/lumatest/test/ProductPageTest.java @@ -4,7 +4,7 @@ import com.lumatest.data.TestData; import com.lumatest.model.HomePage; import com.lumatest.model.ProductPage; -import io.qameta.allure.Allure; +import io.qameta.allure.*; import org.testng.Assert; import org.testng.annotations.Test; @@ -12,8 +12,14 @@ public class ProductPageTest extends BaseTest { @Test( testName = "PRODUCT | Product Details", - description = "TC-03 Open Base URL" + description = "TC-03 Verify Product Details on Product Page", + groups = {"regression"} ) + @Story("Product Details") + @Severity(SeverityLevel.NORMAL) + @Description("To verify that the product page displays the correct product name and breadcrumb menu text " + + "for the 'Driven Backpack'.") + @Link(TestData.DRIVEN_BACKPACK_PRODUCT_URL) public void testProduct() { Allure.step("Open Base URL."); getDriver().get(TestData.BASE_URL); diff --git a/xmlSuits/framework.xml b/xmlSuits/framework.xml deleted file mode 100644 index aaf100b..0000000 --- a/xmlSuits/framework.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/xmlSuits/regression.xml b/xmlSuits/regression.xml index 71e8589..27dff91 100644 --- a/xmlSuits/regression.xml +++ b/xmlSuits/regression.xml @@ -7,7 +7,7 @@ - + From 70d071e92081a850dcdee794a6acf4683fa82d82 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 23:38:08 -0400 Subject: [PATCH 28/33] update .yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5777306..6d06bb9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,7 +48,7 @@ jobs: - name: Build with Maven if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean compile package -e -Dmaven.test.skip=true + run: mvn clean -e install -Dmaven.test.skip=true - name: Test Framework if: ${{ matrix.os == 'ubuntu-latest' }} From 110b09fcf268f371a88d1b7aca47db809cfd3de3 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Fri, 14 Jun 2024 23:45:00 -0400 Subject: [PATCH 29/33] update .yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6d06bb9..7b4416e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,13 +56,13 @@ jobs: - name: Test with Maven if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean test + run: mvn test - name: Test Firefox if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn clean test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml + run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml - - name: Test with Maven + - name: Build and Test with Maven if: ${{ matrix.os != 'ubuntu-latest' }} run: mvn -B package --file pom.xml From 2d25b667905d219a309aff478155e5f5c22c9adb Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Sat, 15 Jun 2024 00:16:21 -0400 Subject: [PATCH 30/33] RRemove parallel from cross browser --- xmlSuits/crossBrowser.xml | 2 +- xmlSuits/regression.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xmlSuits/crossBrowser.xml b/xmlSuits/crossBrowser.xml index 735a0d0..df67746 100644 --- a/xmlSuits/crossBrowser.xml +++ b/xmlSuits/crossBrowser.xml @@ -1,6 +1,6 @@ - + diff --git a/xmlSuits/regression.xml b/xmlSuits/regression.xml index 27dff91..81b333a 100644 --- a/xmlSuits/regression.xml +++ b/xmlSuits/regression.xml @@ -1,6 +1,6 @@ - + From 7373a0482f6fa08db85f395506ba56113d0a2af2 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Sat, 15 Jun 2024 01:49:10 -0400 Subject: [PATCH 31/33] Add ThreadLocal for testing in parallel --- .github/workflows/build.yml | 20 +++++++++++++------ pom.xml | 2 +- src/test/java/com/lumatest/base/BaseTest.java | 15 ++++++++++---- xmlSuits/chrome.xml | 11 ++++++++++ xmlSuits/chromium.xml | 11 ++++++++++ xmlSuits/crossBrowser.xml | 10 +++++++++- xmlSuits/regression.xml | 2 +- xmlSuits/smoke.xml | 2 +- 8 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 xmlSuits/chrome.xml create mode 100644 xmlSuits/chromium.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b4416e..efdb477 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,13 +54,21 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: mvn clean test -Dtest=FrameworkTest - - name: Test with Maven + - name: Cross Browser Testing if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn test - - - name: Test Firefox - if: ${{ matrix.os == 'ubuntu-latest' }} - run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml + run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/crossBrowser.xml + +# - name: Test Chrome +# if: ${{ matrix.os == 'ubuntu-latest' }} +# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/chrome.xml +# +# - name: Test Chromium +# if: ${{ matrix.os == 'ubuntu-latest' }} +# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/chromium.xml +# +# - name: Test Firefox +# if: ${{ matrix.os == 'ubuntu-latest' }} +# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml - name: Build and Test with Maven if: ${{ matrix.os != 'ubuntu-latest' }} diff --git a/pom.xml b/pom.xml index ef86271..443b8b0 100644 --- a/pom.xml +++ b/pom.xml @@ -74,9 +74,9 @@ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" + xmlSuits/smoke.xml xmlSuits/crossBrowser.xml xmlSuits/regression.xml - xmlSuits/smoke.xml diff --git a/src/test/java/com/lumatest/base/BaseTest.java b/src/test/java/com/lumatest/base/BaseTest.java index adc5744..b9b26fa 100644 --- a/src/test/java/com/lumatest/base/BaseTest.java +++ b/src/test/java/com/lumatest/base/BaseTest.java @@ -11,6 +11,7 @@ public abstract class BaseTest { private WebDriver driver; + private final ThreadLocal threadLocalDriver = new ThreadLocal<>(); @BeforeSuite protected void setupWebDriverManager() { @@ -27,11 +28,13 @@ protected void setupWebDriverManager() { protected void setupDriver(@Optional("chrome") String browser, ITestContext context, ITestResult result) { Reporter.log("______________________________________________________________________", true); + this.driver = DriverUtils.createDriver(browser, this.driver); + this.threadLocalDriver.set(driver); + + Reporter.log("Test Thread ID: " + Thread.currentThread().getId(), true); Reporter.log("TEST SUIT: " + context.getCurrentXmlTest().getSuite().getName(), true); Reporter.log("RUN " + result.getMethod().getMethodName(), true); - this.driver = DriverUtils.createDriver(browser, this.driver); - if (getDriver() == null) { Reporter.log("ERROR: Unknown parameter 'browser' - '" + browser + "'.", true); @@ -51,13 +54,17 @@ protected void tearDown(@Optional("chrome") String browser, ITestResult result) getDriver().quit(); Reporter.log("INFO: " + browser.toUpperCase() + " driver closed.", true); - this.driver = null; + Reporter.log("After Test Thread ID: " + Thread.currentThread().getId(), true); + threadLocalDriver.remove(); + + driver = null; + } else { Reporter.log("INFO: Driver is null.", true); } } protected WebDriver getDriver() { - return this.driver; + return threadLocalDriver.get(); } } diff --git a/xmlSuits/chrome.xml b/xmlSuits/chrome.xml new file mode 100644 index 0000000..5d3a58f --- /dev/null +++ b/xmlSuits/chrome.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/xmlSuits/chromium.xml b/xmlSuits/chromium.xml new file mode 100644 index 0000000..690cbc9 --- /dev/null +++ b/xmlSuits/chromium.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/xmlSuits/crossBrowser.xml b/xmlSuits/crossBrowser.xml index df67746..e34467b 100644 --- a/xmlSuits/crossBrowser.xml +++ b/xmlSuits/crossBrowser.xml @@ -1,6 +1,6 @@ - + @@ -16,4 +16,12 @@ + + + + + + + + \ No newline at end of file diff --git a/xmlSuits/regression.xml b/xmlSuits/regression.xml index 81b333a..eb8a00b 100644 --- a/xmlSuits/regression.xml +++ b/xmlSuits/regression.xml @@ -1,6 +1,6 @@ - + diff --git a/xmlSuits/smoke.xml b/xmlSuits/smoke.xml index fc94c17..db83632 100644 --- a/xmlSuits/smoke.xml +++ b/xmlSuits/smoke.xml @@ -1,6 +1,6 @@ - + From d4a69497d70afbde8678f3a763bcbca4636ace86 Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Sat, 15 Jun 2024 01:55:56 -0400 Subject: [PATCH 32/33] Add ThreadLocal for testing in parallel --- .github/workflows/build.yml | 14 +------------- pom.xml | 3 ++- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index efdb477..7f9f9ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ ---- +#Cross Platform, Cross Browser test Run in parallel execution name: Java CI with Maven on: pull_request: @@ -58,18 +58,6 @@ jobs: if: ${{ matrix.os == 'ubuntu-latest' }} run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/crossBrowser.xml -# - name: Test Chrome -# if: ${{ matrix.os == 'ubuntu-latest' }} -# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/chrome.xml -# -# - name: Test Chromium -# if: ${{ matrix.os == 'ubuntu-latest' }} -# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/chromium.xml -# -# - name: Test Firefox -# if: ${{ matrix.os == 'ubuntu-latest' }} -# run: mvn test -Dsurefire.suiteXmlFiles=xmlSuits/firefox.xml - - name: Build and Test with Maven if: ${{ matrix.os != 'ubuntu-latest' }} run: mvn -B package --file pom.xml diff --git a/pom.xml b/pom.xml index 443b8b0..b77b7e3 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,8 @@ xmlSuits/smoke.xml - xmlSuits/crossBrowser.xml + xmlSuits/chrome.xml + xmlSuits/chromium.xml xmlSuits/regression.xml From cdbda036de4174abb4567da4f7a9952e101354ac Mon Sep 17 00:00:00 2001 From: ArinaJur <66705803+ArinaJur@users.noreply.github.com> Date: Sat, 15 Jun 2024 02:03:58 -0400 Subject: [PATCH 33/33] Add ThreadLocal for testing in parallel --- xmlSuits/crossBrowser.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmlSuits/crossBrowser.xml b/xmlSuits/crossBrowser.xml index e34467b..6df7812 100644 --- a/xmlSuits/crossBrowser.xml +++ b/xmlSuits/crossBrowser.xml @@ -1,6 +1,6 @@ - +