From 34bf58a2c0dfe0c90135c83f8c3298dbefe39c9e Mon Sep 17 00:00:00 2001 From: Assamir Date: Wed, 19 Feb 2025 22:05:14 +0100 Subject: [PATCH] Init containers --- mrchecker-playwright-framework/pom.xml | 27 ++++++++++++++++++- .../src/main/resources/application.properties | 18 ++++++++++--- .../DemoWebContainersTest.java | 10 +++++-- .../page/TestContainersDemoPage.java | 27 +++++++++++++++++++ .../resources/MyTestResources.java | 22 ++++++++++++--- .../resources/RawmindWebContainer.java | 5 +--- .../src/test/resources/log4j2.xml | 6 +---- 7 files changed, 96 insertions(+), 19 deletions(-) create mode 100644 mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/page/TestContainersDemoPage.java diff --git a/mrchecker-playwright-framework/pom.xml b/mrchecker-playwright-framework/pom.xml index 8198b807..07a3c94d 100644 --- a/mrchecker-playwright-framework/pom.xml +++ b/mrchecker-playwright-framework/pom.xml @@ -55,6 +55,7 @@ ${project.basedir}/target + org.jboss.logmanager.LogManager 2.23.1 1.7.30 1.1.1 @@ -100,8 +101,14 @@ io.quarkus quarkus-junit5 - 3.18.3 + ${quarkus.platform.version} test + + + org.junit.vintage + junit-vintage-engine + + io.quarkus @@ -156,6 +163,12 @@ junit-jupiter-engine ${junit.version} compile + + + org.junit.vintage + junit-vintage-engine + + @@ -333,6 +346,10 @@ --add-opens java.base/java.lang=ALL-UNNAMED -Dquarkus.configuration.ignore-unknown=true + -Djava.util.logging.manager=org.jboss.logmanager.LogManager + + src/test/resources/junit-platform.properties + @@ -342,6 +359,14 @@ + + org.apache.maven.plugins + maven-failsafe-plugin + 3.0.0-M9 + + -Djava.util.logging.manager=org.jboss.logmanager.LogManager + + io.qameta.allure allure-maven diff --git a/mrchecker-playwright-framework/src/main/resources/application.properties b/mrchecker-playwright-framework/src/main/resources/application.properties index 34314aca..e3e8900a 100644 --- a/mrchecker-playwright-framework/src/main/resources/application.properties +++ b/mrchecker-playwright-framework/src/main/resources/application.properties @@ -1,7 +1,19 @@ -quarkus.log.level=DEBUG -quarkus.http.port=8080 quarkus.log.console.enable=true +quarkus.log.level=INFO +quarkus.log.category."io.quarkus.bootstrap.classloading".level=ERROR +quarkus.log.category."io.quarkus.bootstrap.classloading.QuarkusClassLoader".level=ERROR + + #quarkus.log.category."io.quarkus".level=DEBUG +#quarkus.log.level=DEBUG + +quarkus.arc.unremovable-types=* +quarkus.test.continuous-testing=disabled + + + +#quarkus.http.port=8080 +#mp.messaging.outgoing.regression.connector=smallrye-amqp + -mp.messaging.outgoing.regression.connector=smallrye-amqp testcontainers.mode.debug=true diff --git a/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/DemoWebContainersTest.java b/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/DemoWebContainersTest.java index 8143ce53..d5c3397e 100644 --- a/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/DemoWebContainersTest.java +++ b/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/DemoWebContainersTest.java @@ -3,16 +3,21 @@ import com.capgemini.framework.enums.PrjEpics; import com.capgemini.framework.playwright.containers.BaseContainersTest; import com.capgemini.framework.tags.Status; +import com.capgemini.frameworkExamples.page.TestContainersDemoPage; import io.qameta.allure.Description; import io.qameta.allure.Epic; import io.qameta.allure.Feature; import io.qameta.allure.TmsLink; import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.*; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @QuarkusTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) class DemoWebContainersTest extends BaseContainersTest { + private TestContainersDemoPage testContainersDemoPage = new TestContainersDemoPage(); @TmsLink("Test Management System ID") @Epic(PrjEpics.EXAMPLES) @@ -23,6 +28,7 @@ class DemoWebContainersTest extends BaseContainersTest { @Tag(Status.DONE) void demoContainersTest() { System.out.println("Executing Test..."); -// Assertions.assertNotNull(demoQALoginPage); + var returnText = testContainersDemoPage.clickButtonAndReturnText(); + Assertions.assertEquals("Request info", returnText); } } \ No newline at end of file diff --git a/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/page/TestContainersDemoPage.java b/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/page/TestContainersDemoPage.java new file mode 100644 index 00000000..ea37c6c7 --- /dev/null +++ b/mrchecker-playwright-framework/src/test/java/com/capgemini/frameworkExamples/page/TestContainersDemoPage.java @@ -0,0 +1,27 @@ +package com.capgemini.frameworkExamples.page; + +import com.capgemini.framework.logger.AllureStepLogger; +import com.capgemini.infrastructure.Configuration; +import com.microsoft.playwright.Page; +import com.microsoft.playwright.options.AriaRole; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static com.capgemini.framework.playwright.PlaywrightFactory.getPage; +import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat; + +public class TestContainersDemoPage { + private static final int PAGE_LOADING_TIMEOUT = 20000; + private static final Logger log = LoggerFactory.getLogger(TestContainersDemoPage.class); + + public String clickButtonAndReturnText() { + log.info(Configuration.getInstance().getMyWebAppUrl()); + getPage().navigate(Configuration.getInstance().getMyWebAppUrl(), new Page.NavigateOptions().setTimeout(PAGE_LOADING_TIMEOUT)); +// getPage().navigate("http://localhost:8080", new Page.NavigateOptions().setTimeout(PAGE_LOADING_TIMEOUT)); + getPage().onLoad(p -> AllureStepLogger.step("Page loaded!")); + getPage().getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Show request details")).click(); + + assertThat(getPage().getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("Request info").setExact(true))).isVisible(); + return getPage().getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("Request info").setExact(true)).innerText(); + } +} diff --git a/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/MyTestResources.java b/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/MyTestResources.java index 9c7f21f2..6ad4685e 100644 --- a/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/MyTestResources.java +++ b/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/MyTestResources.java @@ -1,6 +1,5 @@ package com.capgemini.infrastructure.resources; -import com.capgemini.framework.logger.LoggerInstance; import com.capgemini.infrastructure.Configuration; import com.capgemini.infrastructure.network.TestNetwork; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; @@ -15,8 +14,6 @@ public class MyTestResources implements QuarkusTestResourceLifecycleManager { private final Network network = TestNetwork.getInstance().getNetwork(); private RawmindWebContainer rawmindWebContainer = null; - LoggerInstance logger = new LoggerInstance(); - @Override public Map start() { var conf = new HashMap(); @@ -27,11 +24,28 @@ public Map start() { } private void startWebServer() { - if (!isContainerRunning(Configuration.MY_WEB_APP) || rawmindWebContainer == null) { // Only start if it's NOT running + var isContainerRunning = isContainerRunning(Configuration.MY_WEB_APP); + if (!isContainerRunning || rawmindWebContainer == null) { // Only start if it's NOT running rawmindWebContainer = new RawmindWebContainer(network); rawmindWebContainer.withCreateContainerCmdModifier(cmd -> cmd.withName(Configuration.MY_WEB_APP)); rawmindWebContainer.start(); } +// if(isContainerRunning && rawmindWebContainer == null){ +// rawmindWebContainer = new RawmindWebContainer(network,DockerClientFactory.instance().client().listContainersCmd() +// .withShowAll(true) +// .exec() +// .stream() +// .filter(container -> container.getNames()[0].contains(Configuration.MY_WEB_APP)).findFirst().get()); +// } +// +// Container container = dockerClient.listContainersCmd().exec().get(0); +// +// RawmindWebContainer rawmindContainer = new RawmindWebContainer(); +// rawmindContainer.setId(container.getId()); +// rawmindContainer.setName(container.getNames()[0]); // Assuming name exists +// rawmindContainer.setImage(container.getImage()); +//// Add more fields if necessary + } private boolean isContainerRunning(String containerName) { diff --git a/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/RawmindWebContainer.java b/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/RawmindWebContainer.java index 43e7e95b..94a951d7 100644 --- a/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/RawmindWebContainer.java +++ b/mrchecker-playwright-framework/src/test/java/com/capgemini/infrastructure/resources/RawmindWebContainer.java @@ -1,6 +1,5 @@ package com.capgemini.infrastructure.resources; -import com.capgemini.framework.logger.LoggerInstance; import com.capgemini.infrastructure.Configuration; import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.HostConfig; @@ -17,8 +16,6 @@ public class RawmindWebContainer extends GenericContainer { private static final String NETWORK_ALIAS = "rawmind"; private static final int APP_PORT = 8080; - LoggerInstance logger = new LoggerInstance(); - public RawmindWebContainer(Network network) { super(DockerImageName.parse("rawmind/web-test")); @@ -34,7 +31,7 @@ public RawmindWebContainer(Network network) { ) )); withCreateContainerCmdModifier(cmd -> cmd.withName(Configuration.MY_WEB_APP)); - logger.logInfo("RawmindWebContainer starting..."); + logger().info("RawmindWebContainer starting..."); } public String getUrl() { diff --git a/mrchecker-playwright-framework/src/test/resources/log4j2.xml b/mrchecker-playwright-framework/src/test/resources/log4j2.xml index 1b08fdbb..53c550b7 100644 --- a/mrchecker-playwright-framework/src/test/resources/log4j2.xml +++ b/mrchecker-playwright-framework/src/test/resources/log4j2.xml @@ -11,7 +11,6 @@ - @@ -53,13 +52,10 @@ - + - - -