Forráskód Böngészése

[e2e] Update BaseTest with removing redundant data (#3160)

* test commit

* fix BaseTest

* upd global

* upd global

* upd global
Vlad Senyuta 2 éve
szülő
commit
16750bd899

+ 0 - 3
kafka-ui-e2e-checks/.env.example

@@ -1,3 +0,0 @@
-USE_LOCAL_BROWSER=true
-SHOULD_START_SELENOID=false
-TURN_OFF_SCREENSHOTS=true

+ 1 - 1
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/NaviSideBar.java

@@ -1,7 +1,7 @@
 package com.provectus.kafka.ui.pages;
 
 import static com.codeborne.selenide.Selenide.$x;
-import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
+import static com.provectus.kafka.ui.settings.BaseSource.CLUSTER_NAME;
 
 import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.SelenideElement;

+ 4 - 4
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/ApiHelper.java → kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/services/ApiService.java

@@ -1,4 +1,4 @@
-package com.provectus.kafka.ui.helpers;
+package com.provectus.kafka.ui.services;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.provectus.kafka.ui.api.ApiClient;
@@ -13,7 +13,7 @@ import com.provectus.kafka.ui.api.model.TopicCreation;
 import com.provectus.kafka.ui.models.Connector;
 import com.provectus.kafka.ui.models.Schema;
 import com.provectus.kafka.ui.models.Topic;
-import com.provectus.kafka.ui.settings.Source;
+import com.provectus.kafka.ui.settings.BaseSource;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.reactive.function.client.WebClientResponseException;
@@ -26,11 +26,11 @@ import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 
 
 @Slf4j
-public class ApiHelper {
+public class ApiService {
 
     int partitions = 1;
     int replicationFactor = 1;
-    String baseURL = Source.BASE_API_URL;
+    String baseURL = BaseSource.BASE_API_URL;
 
 
     @SneakyThrows

+ 1 - 1
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/Source.java → kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/settings/BaseSource.java

@@ -1,6 +1,6 @@
 package com.provectus.kafka.ui.settings;
 
-public abstract class Source {
+public abstract class BaseSource {
 
   public static String BASE_API_URL = System.getProperty("BASE_URL", "http://localhost:8080");
   public static String BASE_WEB_URL = System.getProperty("BASE_DOCKER_URL", "http://host.testcontainers.internal:8080");

+ 30 - 52
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java

@@ -1,18 +1,27 @@
 package com.provectus.kafka.ui.base;
 
+import static com.codeborne.selenide.Selenide.clearBrowserCookies;
+import static com.codeborne.selenide.Selenide.clearBrowserLocalStorage;
+import static com.codeborne.selenide.Selenide.refresh;
+import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.TOPICS;
+import static com.provectus.kafka.ui.settings.BaseSource.BASE_WEB_URL;
+
 import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.Selenide;
 import com.codeborne.selenide.SelenideElement;
 import com.codeborne.selenide.WebDriverRunner;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.DisplayNameGenerator;
-import com.provectus.kafka.ui.utilities.qaseIoUtils.TestCaseGenerator;
-import io.github.cdimascio.dotenv.Dotenv;
 import io.qameta.allure.Allure;
 import io.qase.api.annotation.Step;
+import java.io.ByteArrayInputStream;
+import java.util.List;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
 import org.assertj.core.api.SoftAssertions;
-import org.junit.jupiter.api.*;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayNameGeneration;
 import org.openqa.selenium.Dimension;
 import org.openqa.selenium.OutputType;
 import org.openqa.selenium.TakesScreenshot;
@@ -23,15 +32,6 @@ import org.testcontainers.containers.BrowserWebDriverContainer;
 import org.testcontainers.containers.output.Slf4jLogConsumer;
 import org.testcontainers.utility.DockerImageName;
 
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-import static com.provectus.kafka.ui.base.Setup.*;
-import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.TOPICS;
-import static com.provectus.kafka.ui.settings.Source.BASE_WEB_URL;
-
 @Slf4j
 @DisplayNameGeneration(DisplayNameGenerator.class)
 public class BaseTest extends Facade {
@@ -44,22 +44,12 @@ public class BaseTest extends Facade {
     return System.getProperty("os.arch").equals("aarch64");
   }
 
-  @BeforeEach
-  public void setWebDriver() {
-    RemoteWebDriver remoteWebDriver = webDriverContainer.getWebDriver();
-    WebDriverRunner.setWebDriver(remoteWebDriver);
-    remoteWebDriver.manage().window().setSize(new Dimension(1440, 1024));
-    Selenide.open(BASE_WEB_URL);
-    naviSideBar.waitUntilScreenReady();
-  }
-
   @BeforeAll
   public static void start() {
     DockerImageName image = isARM64()
         ? DockerImageName.parse(SELENIARM_STANDALONE_CHROMIUM).asCompatibleSubstituteFor(SELENIUM_IMAGE_NAME)
         : DockerImageName.parse(SELENIUM_IMAGE_NAME);
     log.info("Using [{}] as image name for chrome", image.getUnversionedPart());
-
     webDriverContainer = new BrowserWebDriverContainer<>(image)
         .withEnv("JAVA_OPTS", "-Dwebdriver.chrome.whitelistedIps=")
         .withCapabilities(new ChromeOptions()
@@ -68,7 +58,7 @@ public class BaseTest extends Facade {
             .addArguments("--no-sandbox")
             .addArguments("--verbose")
         )
-            .withLogConsumer(new Slf4jLogConsumer(log).withPrefix("[CHROME]: "));
+        .withLogConsumer(new Slf4jLogConsumer(log).withPrefix("[CHROME]: "));
     try {
       Testcontainers.exposeHostPorts(8080);
       log.info("Starting browser container");
@@ -78,29 +68,6 @@ public class BaseTest extends Facade {
     }
   }
 
-  static {
-    if (!new File("./.env").exists()) {
-      try {
-        FileUtils.copyFile(new File(".env.example"), new File(".env"));
-      } catch (IOException e) {
-        log.error("couldn't copy .env.example to .env. Please add .env");
-        e.printStackTrace();
-      }
-    }
-    Dotenv.load().entries().forEach(env -> System.setProperty(env.getKey(), env.getValue()));
-    if (Config.CLEAR_REPORTS_DIR) {
-      clearReports();
-    }
-    setup();
-    Runtime.getRuntime().addShutdownHook(new Thread(() -> {
-      if (TestCaseGenerator.FAILED) {
-        log.error(
-                "Tests FAILED because some problem with @CaseId annotation. Verify that all tests annotated with @CaseId and Id is correct!");
-        Runtime.getRuntime().halt(100500);
-      }
-    }));
-  }
-
   @AfterAll
   public static void tearDown() {
     if (webDriverContainer.isRunning()) {
@@ -109,16 +76,27 @@ public class BaseTest extends Facade {
     }
   }
 
+  @BeforeEach
+  public void beforeMethod() {
+    RemoteWebDriver remoteWebDriver = webDriverContainer.getWebDriver();
+    WebDriverRunner.setWebDriver(remoteWebDriver);
+    remoteWebDriver.manage()
+        .window().setSize(new Dimension(1440, 1024));
+    Selenide.open(BASE_WEB_URL);
+    naviSideBar.waitUntilScreenReady();
+  }
+
   @AfterEach
   public void afterMethod() {
-    Allure.addAttachment("Screenshot",
-        new ByteArrayInputStream(
-            ((TakesScreenshot) webDriverContainer.getWebDriver()).getScreenshotAs(OutputType.BYTES)));
-    browserClear();
+    Allure.addAttachment("Screenshot", new ByteArrayInputStream(((TakesScreenshot)
+        webDriverContainer.getWebDriver()).getScreenshotAs(OutputType.BYTES)));
+    clearBrowserLocalStorage();
+    clearBrowserCookies();
+    refresh();
   }
 
   @Step
-  protected void navigateToTopics(){
+  protected void navigateToTopics() {
     naviSideBar
         .openSideMenu(TOPICS);
     topicsList

+ 0 - 19
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Config.java

@@ -1,19 +0,0 @@
-package com.provectus.kafka.ui.base;
-
-public abstract class Config {
-
-  public static boolean CLEAR_REPORTS_DIR =
-          Boolean.parseBoolean(System.getProperty("CLEAR_REPORTS_DIR", "true"));
-  public static boolean USE_LOCAL_BROWSER =
-          Boolean.parseBoolean(System.getProperty("USE_LOCAL_BROWSER", "true"));
-  public static String REPORTS_FOLDER = System.getProperty("REPORTS_FOLDER", "allure-results");
-  public static Boolean SCREENSHOTS =
-          Boolean.parseBoolean(System.getProperty("SCREENSHOTS", "true"));
-  public static Boolean SAVE_PAGE_SOURCE =
-          Boolean.parseBoolean(System.getProperty("SAVE_PAGE_SOURCE", "false"));
-  public static Boolean REOPEN_BROWSER_ON_FAIL =
-          Boolean.parseBoolean(System.getProperty("REOPEN_BROWSER_ON_FAIL", "true"));
-  public static String BROWSER = System.getProperty("BROWSER", "chromium");
-  public static String BROWSER_SIZE = System.getProperty("BROWSER_SIZE", "1920x1080");
-  public static Boolean ENABLE_VNC = Boolean.parseBoolean(System.getProperty("ENABLE_VNC", "true"));
-}

+ 2 - 2
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Facade.java

@@ -1,6 +1,6 @@
 package com.provectus.kafka.ui.base;
 
-import com.provectus.kafka.ui.helpers.ApiHelper;
+import com.provectus.kafka.ui.services.ApiService;
 import com.provectus.kafka.ui.pages.NaviSideBar;
 import com.provectus.kafka.ui.pages.TopPanel;
 import com.provectus.kafka.ui.pages.brokers.BrokersConfigTab;
@@ -21,7 +21,7 @@ import com.provectus.kafka.ui.pages.topic.TopicDetails;
 import com.provectus.kafka.ui.pages.topic.TopicsList;
 
 public abstract class Facade {
-    protected ApiHelper apiHelper = new ApiHelper();
+    protected ApiService apiService = new ApiService();
     protected ConnectorCreateForm connectorCreateForm = new ConnectorCreateForm();
     protected KafkaConnectList kafkaConnectList = new KafkaConnectList();
     protected ConnectorDetails connectorDetails = new ConnectorDetails();

+ 0 - 53
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/Setup.java

@@ -1,53 +0,0 @@
-package com.provectus.kafka.ui.base;
-
-import com.codeborne.selenide.Configuration;
-import com.codeborne.selenide.logevents.SelenideLogger;
-import io.qameta.allure.Step;
-import io.qameta.allure.selenide.AllureSelenide;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.File;
-import java.util.Arrays;
-
-import static com.codeborne.selenide.Selenide.*;
-
-@Slf4j
-public abstract class Setup {
-
-    @SneakyThrows
-    static void setup() {
-        Configuration.reportsFolder = Config.REPORTS_FOLDER;
-        Configuration.screenshots = Config.SCREENSHOTS;
-        Configuration.savePageSource = Config.SAVE_PAGE_SOURCE;
-        Configuration.reopenBrowserOnFail = Config.REOPEN_BROWSER_ON_FAIL;
-        Configuration.browser = Config.BROWSER;
-        Configuration.timeout = 10000;
-        Configuration.pageLoadTimeout = 180000;
-        Configuration.browserSize = Config.BROWSER_SIZE;
-        SelenideLogger.addListener("allure", new AllureSelenide().savePageSource(false));
-    }
-
-    public static void clearReports() {
-        log.info(String.format("Clearing reports dir [%s]...", Config.REPORTS_FOLDER));
-        File allureResults = new File(Config.REPORTS_FOLDER);
-        if (allureResults.isDirectory()) {
-            File[] list = allureResults.listFiles();
-            if (list != null) {
-                Arrays.stream(list)
-                        .sequential()
-                        .filter(e -> !e.getName().equals("categories.json"))
-                        .forEach(File::delete);
-            }
-        }
-    }
-
-    @Step
-    public static void browserClear() {
-        log.debug("browserClear");
-        clearBrowserLocalStorage();
-        clearBrowserCookies();
-        refresh();
-        log.debug("=> DONE");
-    }
-}

+ 6 - 6
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/suite/connectors/ConnectorsTests.java

@@ -2,7 +2,7 @@ package com.provectus.kafka.ui.suite.connectors;
 
 import static com.provectus.kafka.ui.pages.BasePage.AlertHeader.SUCCESS;
 import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.KAFKA_CONNECT;
-import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
+import static com.provectus.kafka.ui.settings.BaseSource.CLUSTER_NAME;
 import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString;
 import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
 
@@ -52,11 +52,11 @@ public class ConnectorsTests extends BaseTest {
     public void beforeAll() {
         TOPIC_LIST.addAll(List.of(TOPIC_FOR_CREATE, TOPIC_FOR_DELETE, TOPIC_FOR_UPDATE));
         TOPIC_LIST.forEach(topic -> {
-            apiHelper.createTopic(CLUSTER_NAME, topic.getName());
-            apiHelper.sendMessage(CLUSTER_NAME, topic);
+            apiService.createTopic(CLUSTER_NAME, topic.getName());
+            apiService.sendMessage(CLUSTER_NAME, topic);
         });
         CONNECTOR_LIST.addAll(List.of(CONNECTOR_FOR_DELETE, CONNECTOR_FOR_UPDATE));
-        CONNECTOR_LIST.forEach(connector -> apiHelper
+        CONNECTOR_LIST.forEach(connector -> apiService
                 .createConnector(CLUSTER_NAME, CONNECT_NAME, connector));
     }
 
@@ -120,8 +120,8 @@ public class ConnectorsTests extends BaseTest {
     @AfterAll
     public void afterAll() {
         CONNECTOR_LIST.forEach(connector ->
-                apiHelper.deleteConnector(CLUSTER_NAME, CONNECT_NAME, connector.getName()));
-        TOPIC_LIST.forEach(topic -> apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
+                apiService.deleteConnector(CLUSTER_NAME, CONNECT_NAME, connector.getName()));
+        TOPIC_LIST.forEach(topic -> apiService.deleteTopic(CLUSTER_NAME, topic.getName()));
     }
 
     @Step

+ 3 - 3
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/suite/schemas/SchemasTests.java

@@ -1,7 +1,7 @@
 package com.provectus.kafka.ui.suite.schemas;
 
 import static com.provectus.kafka.ui.pages.NaviSideBar.SideMenuOption.SCHEMA_REGISTRY;
-import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
+import static com.provectus.kafka.ui.settings.BaseSource.CLUSTER_NAME;
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 
 import com.codeborne.selenide.Condition;
@@ -41,7 +41,7 @@ public class SchemasTests extends BaseTest {
     @SneakyThrows
     public void beforeAll() {
         SCHEMA_LIST.addAll(List.of(AVRO_API, JSON_API, PROTOBUF_API));
-        SCHEMA_LIST.forEach(schema -> apiHelper.createSchema(CLUSTER_NAME, schema));
+        SCHEMA_LIST.forEach(schema -> apiService.createSchema(CLUSTER_NAME, schema));
     }
 
     @DisplayName("should create AVRO schema")
@@ -228,7 +228,7 @@ public class SchemasTests extends BaseTest {
 
     @AfterAll
     public void afterAll() {
-        SCHEMA_LIST.forEach(schema -> apiHelper.deleteSchema(CLUSTER_NAME, schema.getName()));
+        SCHEMA_LIST.forEach(schema -> apiService.deleteSchema(CLUSTER_NAME, schema.getName()));
     }
 
     @Step

+ 3 - 3
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/suite/topics/TopicMessagesTests.java

@@ -2,7 +2,7 @@ package com.provectus.kafka.ui.suite.topics;
 
 import static com.provectus.kafka.ui.pages.BasePage.AlertHeader.SUCCESS;
 import static com.provectus.kafka.ui.pages.topic.TopicDetails.TopicMenu.MESSAGES;
-import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
+import static com.provectus.kafka.ui.settings.BaseSource.CLUSTER_NAME;
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
 
@@ -38,7 +38,7 @@ public class TopicMessagesTests extends BaseTest {
   @BeforeAll
   public void beforeAll() {
     TOPIC_LIST.addAll(List.of(TOPIC_FOR_MESSAGES));
-    TOPIC_LIST.forEach(topic -> apiHelper.createTopic(CLUSTER_NAME, topic.getName()));
+    TOPIC_LIST.forEach(topic -> apiService.createTopic(CLUSTER_NAME, topic.getName()));
   }
 
   @DisplayName("produce message")
@@ -136,6 +136,6 @@ public class TopicMessagesTests extends BaseTest {
 
   @AfterAll
   public void afterAll() {
-    TOPIC_LIST.forEach(topic -> apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
+    TOPIC_LIST.forEach(topic -> apiService.deleteTopic(CLUSTER_NAME, topic.getName()));
   }
 }

+ 3 - 4
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/suite/topics/TopicsTests.java

@@ -9,12 +9,11 @@ import static com.provectus.kafka.ui.pages.topic.enums.CustomParameterType.COMPR
 import static com.provectus.kafka.ui.pages.topic.enums.MaxSizeOnDisk.NOT_SET;
 import static com.provectus.kafka.ui.pages.topic.enums.MaxSizeOnDisk.SIZE_1_GB;
 import static com.provectus.kafka.ui.pages.topic.enums.MaxSizeOnDisk.SIZE_20_GB;
-import static com.provectus.kafka.ui.settings.Source.CLUSTER_NAME;
+import static com.provectus.kafka.ui.settings.BaseSource.CLUSTER_NAME;
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.apache.commons.lang3.RandomUtils.nextInt;
-import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
 
 import com.codeborne.selenide.Condition;
 import com.provectus.kafka.ui.base.BaseTest;
@@ -70,7 +69,7 @@ public class TopicsTests extends BaseTest {
   @BeforeAll
   public void beforeAll() {
     TOPIC_LIST.addAll(List.of(TOPIC_TO_UPDATE, TOPIC_FOR_DELETE));
-    TOPIC_LIST.forEach(topic -> apiHelper.createTopic(CLUSTER_NAME, topic.getName()));
+    TOPIC_LIST.forEach(topic -> apiService.createTopic(CLUSTER_NAME, topic.getName()));
   }
 
   @DisplayName("should create a topic")
@@ -474,6 +473,6 @@ public class TopicsTests extends BaseTest {
 
   @AfterAll
   public void afterAll() {
-    TOPIC_LIST.forEach(topic -> apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
+    TOPIC_LIST.forEach(topic -> apiService.deleteTopic(CLUSTER_NAME, topic.getName()));
   }
 }