From 3e8ef63359d701aa5e0d16fbe2f73b4c4ca78076 Mon Sep 17 00:00:00 2001 From: erhanbatu Date: Sun, 2 Aug 2026 17:41:34 +0200 Subject: [PATCH] Allure reporting --- pom.xml | 116 +++++++++++++++++- .../toolshop/catalog/AddToCartTest.java | 2 - .../catalog/SearchForProductsTest.java | 3 + .../catalog/pageobjects/ProductDetails.java | 3 + .../catalog/pageobjects/ProductList.java | 2 + .../toolshop/fixtures/PlaywrightTestCase.java | 10 ++ .../toolshop/fixtures/ScreenshotManager.java | 16 +++ src/test/resources/allure.properties | 1 + 8 files changed, 147 insertions(+), 6 deletions(-) create mode 100644 src/test/java/com/serenitydojo/playwright/toolshop/fixtures/ScreenshotManager.java create mode 100644 src/test/resources/allure.properties diff --git a/pom.xml b/pom.xml index 3bb0598f..9d040976 100644 --- a/pom.xml +++ b/pom.xml @@ -9,18 +9,20 @@ 1.0-SNAPSHOT - 21 - 21 + 21 UTF-8 2.35.2 + 2.15.2 + 1.60.0 + 1.9.24 com.microsoft.playwright playwright - 1.60.0 + ${playwright.version} test @@ -38,16 +40,122 @@ io.qameta.allure allure-jupiter - ${allure.version} test + net.datafaker datafaker 2.7.0 test + + org.aspectj + aspectjweaver + ${aspectj.version} + test + + + + + io.qameta.allure + allure-bom + ${allure.version} + pom + import + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + + ${maven.compiler.release} + + + -parameters + + + true + + + /Users/erhanbatu/Library/Java/JavaVirtualMachines/temurin-21.0.11/Contents/Home/bin/javac + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.6 + + true + + + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.5.6 + + + + + integration-test + verify + + + + + + + /Users/erhanbatu/Library/Java/JavaVirtualMachines/temurin-21.0.11/Contents/Home/bin/java + + + + -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar + + + + **/*Test.java + **/*Tests.java + + + + + ${project.build.directory}/allure-results + + + + + + + io.qameta.allure + allure-maven + ${allure.maven.version} + + 2.44.0 + ${project.build.directory}/allure-results + + + + allure-reports + post-integration-test + + report + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/AddToCartTest.java b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/AddToCartTest.java index 083bb5bc..ae6ba4ce 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/AddToCartTest.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/AddToCartTest.java @@ -8,8 +8,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.parallel.Execution; -import org.junit.jupiter.api.parallel.ExecutionMode; import java.util.List; diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/SearchForProductsTest.java b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/SearchForProductsTest.java index 1cc5d63e..437f793a 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/SearchForProductsTest.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/SearchForProductsTest.java @@ -3,6 +3,7 @@ import com.serenitydojo.playwright.toolshop.catalog.pageobjects.ProductList; import com.serenitydojo.playwright.toolshop.catalog.pageobjects.SearchComponent; import com.serenitydojo.playwright.toolshop.fixtures.PlaywrightTestCase; +import com.serenitydojo.playwright.toolshop.fixtures.ScreenshotManager; import io.qameta.allure.Feature; import io.qameta.allure.Story; import org.assertj.core.api.Assertions; @@ -31,7 +32,9 @@ void whenSearchingByKeyword() { SearchComponent searchComponent = new SearchComponent(page); ProductList productList = new ProductList(page); + ScreenshotManager.takeScreenshot(page, "ss1"); searchComponent.searchBy("tape"); + ScreenshotManager.takeScreenshot(page, "ss2"); var matchingProducts = productList.getProductNames(); diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductDetails.java b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductDetails.java index 0c253431..5259c46e 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductDetails.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductDetails.java @@ -2,8 +2,10 @@ import com.microsoft.playwright.Page; import com.microsoft.playwright.options.AriaRole; +import com.serenitydojo.playwright.toolshop.fixtures.PlaywrightTestCase; import io.qameta.allure.Step; + public class ProductDetails { private final Page page; @@ -27,5 +29,6 @@ public void addToCart() { page.getByRole(AriaRole.ALERT).click(); } ); + } } \ No newline at end of file diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductList.java b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductList.java index dcf354ba..d742609d 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductList.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/catalog/pageobjects/ProductList.java @@ -2,6 +2,7 @@ import com.microsoft.playwright.Page; import com.serenitydojo.playwright.toolshop.fixtures.ProductSummary; +import com.serenitydojo.playwright.toolshop.fixtures.ScreenshotManager; import io.qameta.allure.Step; import java.util.List; @@ -31,6 +32,7 @@ public List getProductSummaries() { @Step("View product details") public void viewProductDetails(String productName) { page.locator(".card").getByText(productName).click(); + ScreenshotManager.takeScreenshot(page,"view product details"); } public String getSearchCompletedMessage() { diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/PlaywrightTestCase.java b/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/PlaywrightTestCase.java index f38a7902..c61f988f 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/PlaywrightTestCase.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/PlaywrightTestCase.java @@ -1,10 +1,12 @@ package com.serenitydojo.playwright.toolshop.fixtures; import com.microsoft.playwright.*; +import io.qameta.allure.Allure; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import java.io.ByteArrayInputStream; import java.util.Arrays; public abstract class PlaywrightTestCase { @@ -38,9 +40,17 @@ void setUpBrowserContext() { @AfterEach void closeContext() { + takeScreenshot("End of test"); browserContext.close(); } + protected void takeScreenshot(String name){ + var screenshot = page.screenshot( + new Page.ScreenshotOptions().setFullPage(true) + ); + Allure.addAttachment(name, new ByteArrayInputStream(screenshot)); + } + @AfterAll static void tearDown() { browser.get().close(); diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/ScreenshotManager.java b/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/ScreenshotManager.java new file mode 100644 index 00000000..ed18bc10 --- /dev/null +++ b/src/test/java/com/serenitydojo/playwright/toolshop/fixtures/ScreenshotManager.java @@ -0,0 +1,16 @@ +package com.serenitydojo.playwright.toolshop.fixtures; + +import com.microsoft.playwright.Page; +import io.qameta.allure.Allure; + +import java.io.ByteArrayInputStream; + +public class ScreenshotManager { + + public static void takeScreenshot(Page page, String name){ + var screenshot = page.screenshot( + new Page.ScreenshotOptions().setFullPage(true) + ); + Allure.addAttachment(name, new ByteArrayInputStream(screenshot)); + } +} diff --git a/src/test/resources/allure.properties b/src/test/resources/allure.properties new file mode 100644 index 00000000..6c1e0bb1 --- /dev/null +++ b/src/test/resources/allure.properties @@ -0,0 +1 @@ +allure.results.directory=target/allure-results \ No newline at end of file