Browse Source

[e2e] create screen facade class and refactor objects of page classes (#2656)

* Deleted classes Pages.java, Helpers.java

* Refactored BaseTest.java, added extension of Facade

* Deleted ExtensionMethod(WaitUtils.class) from ConnectorCreateView

* Refactored of TestClasses, added new TestInstance(TestInstance.Lifecycle.PER_CLASS) annotation for using nonstatic BeforeAll/AfterAll annotation

* Deleted ExtensionMethod(WaitUtils.class) annotation in ConnectorsView

* Refactored SmokeTests

* Added new abstract class Facade

* ConnectorsTests upd

* BaseTest resolved

* Initial new object classes in Facade

* Fix and refactored test classes

* Revert "Fix and refactored test classes"

This reverts commit b0890b32ca15bdf8aa99a8da901c8d6ff783b7bd.

* rename apiHelpers / apiHelper

* refactored "new Objects classes"
Alexandr Nezboretskiy 2 years ago
parent
commit
3f4791ff0a

+ 0 - 11
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/helpers/Helpers.java

@@ -1,11 +0,0 @@
-package com.provectus.kafka.ui.helpers;
-
-
-
-public class Helpers {
-    public static final Helpers INSTANCE = new Helpers();
-
-    private Helpers(){}
-
-    public ApiHelper apiHelper = new ApiHelper();
-}

+ 0 - 53
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/Pages.java

@@ -1,53 +0,0 @@
-package com.provectus.kafka.ui.pages;
-
-import com.provectus.kafka.ui.pages.connector.ConnectorsList;
-import com.provectus.kafka.ui.pages.connector.ConnectorsView;
-import com.provectus.kafka.ui.pages.schema.SchemaRegistryList;
-import com.provectus.kafka.ui.pages.topic.ProduceMessagePanel;
-import com.provectus.kafka.ui.pages.topic.TopicView;
-import com.provectus.kafka.ui.pages.topic.TopicsList;
-import io.qameta.allure.Step;
-
-public class Pages {
-
-    public static Pages INSTANCE = new Pages();
-
-    public MainPage mainPage = new MainPage();
-    public TopicsList topicsList = new TopicsList();
-    public TopicView topicView = new TopicView();
-    public ProduceMessagePanel produceMessagePanel = new ProduceMessagePanel();
-    public ConnectorsList connectorsList = new ConnectorsList();
-    public ConnectorsView connectorsView = new ConnectorsView();
-    public SchemaRegistryList schemaRegistry = new SchemaRegistryList();
-
-    @Step
-    public MainPage open() {
-        return openMainPage();
-    }
-
-    @Step
-    public MainPage openMainPage() {
-        return mainPage.goTo();
-    }
-
-    @Step
-    public TopicsList openTopicsList(String clusterName) {
-        return topicsList.goTo(clusterName);
-    }
-
-    @Step
-    public TopicView openTopicView(String clusterName, String topicName) {
-        return topicView.goTo(clusterName, topicName);
-    }
-
-    @Step
-    public ConnectorsList openConnectorsList(String clusterName) {
-        return connectorsList.goTo(clusterName);
-    }
-
-    @Step
-    public ConnectorsView openConnectorsView(String clusterName, String connectorName) {
-        return connectorsView.goTo(clusterName, connectorName);
-    }
-
-}

+ 0 - 3
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorCreateView.java

@@ -2,9 +2,7 @@ package com.provectus.kafka.ui.pages.connector;
 
 
 import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.SelenideElement;
 import com.codeborne.selenide.SelenideElement;
-import com.provectus.kafka.ui.utilities.WaitUtils;
 import io.qameta.allure.Step;
 import io.qameta.allure.Step;
-import lombok.experimental.ExtensionMethod;
 import org.openqa.selenium.By;
 import org.openqa.selenium.By;
 
 
 import static com.codeborne.selenide.Selenide.$;
 import static com.codeborne.selenide.Selenide.$;
@@ -12,7 +10,6 @@ import static com.codeborne.selenide.Selenide.sleep;
 import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
 import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
 import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
 import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
 
 
-@ExtensionMethod(WaitUtils.class)
 public class ConnectorCreateView {
 public class ConnectorCreateView {
 
 
     SelenideElement nameField = $(By.xpath("//input[@name='name']"));
     SelenideElement nameField = $(By.xpath("//input[@name='name']"));

+ 0 - 3
kafka-ui-e2e-checks/src/main/java/com/provectus/kafka/ui/pages/connector/ConnectorsView.java

@@ -4,9 +4,7 @@ import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.Selenide;
 import com.codeborne.selenide.Selenide;
 import com.codeborne.selenide.SelenideElement;
 import com.codeborne.selenide.SelenideElement;
 import com.provectus.kafka.ui.settings.Source;
 import com.provectus.kafka.ui.settings.Source;
-import com.provectus.kafka.ui.utilities.WaitUtils;
 import io.qameta.allure.Step;
 import io.qameta.allure.Step;
-import lombok.experimental.ExtensionMethod;
 import org.openqa.selenium.By;
 import org.openqa.selenium.By;
 import org.openqa.selenium.Keys;
 import org.openqa.selenium.Keys;
 
 
@@ -14,7 +12,6 @@ import static com.codeborne.selenide.Selenide.*;
 import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
 import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
 import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
 import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
 
 
-@ExtensionMethod(WaitUtils.class)
 public class ConnectorsView {
 public class ConnectorsView {
     private static final String path = "/ui/clusters/%s/connects/first/connectors/%s";
     private static final String path = "/ui/clusters/%s/connects/first/connectors/%s";
     protected SelenideElement submitButton = $(By.xpath("//button[@type='submit']"));
     protected SelenideElement submitButton = $(By.xpath("//button[@type='submit']"));

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

@@ -1,8 +1,8 @@
 package com.provectus.kafka.ui;
 package com.provectus.kafka.ui;
 
 
 import com.provectus.kafka.ui.base.BaseTest;
 import com.provectus.kafka.ui.base.BaseTest;
-import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
+import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import io.qase.api.annotation.CaseId;
 import io.qase.api.annotation.CaseId;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
@@ -14,7 +14,7 @@ public class SmokeTests extends BaseTest {
     @CaseId(198)
     @CaseId(198)
     @DisplayName("main page should load")
     @DisplayName("main page should load")
     void mainPageLoads() {
     void mainPageLoads() {
-        pages.open()
+        mainPage.goTo()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
         compareScreenshots("main");
         compareScreenshots("main");
     }
     }

+ 1 - 5
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/base/BaseTest.java

@@ -1,8 +1,6 @@
 package com.provectus.kafka.ui.base;
 package com.provectus.kafka.ui.base;
 
 
 import com.codeborne.selenide.WebDriverRunner;
 import com.codeborne.selenide.WebDriverRunner;
-import com.provectus.kafka.ui.helpers.Helpers;
-import com.provectus.kafka.ui.pages.Pages;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.DisplayNameGenerator;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.DisplayNameGenerator;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.TestCaseGenerator;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.TestCaseGenerator;
 import com.provectus.kafka.ui.utilities.screenshots.Screenshooter;
 import com.provectus.kafka.ui.utilities.screenshots.Screenshooter;
@@ -30,13 +28,11 @@ import static com.provectus.kafka.ui.base.Setup.setup;
 
 
 @Slf4j
 @Slf4j
 @DisplayNameGeneration(DisplayNameGenerator.class)
 @DisplayNameGeneration(DisplayNameGenerator.class)
-public class BaseTest {
+public class BaseTest extends Facade {
 
 
   private static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0";
   private static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0";
   private static final String SELENIARM_STANDALONE_CHROMIUM = "seleniarm/standalone-chromium:103.0";
   private static final String SELENIARM_STANDALONE_CHROMIUM = "seleniarm/standalone-chromium:103.0";
   protected static final String CLUSTER_NAME = "local";
   protected static final String CLUSTER_NAME = "local";
-  protected Pages pages = Pages.INSTANCE;
-  protected Helpers helpers = Helpers.INSTANCE;
 
 
   private final Screenshooter screenshooter = new Screenshooter();
   private final Screenshooter screenshooter = new Screenshooter();
 
 

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

@@ -0,0 +1,31 @@
+package com.provectus.kafka.ui.base;
+
+import com.provectus.kafka.ui.helpers.ApiHelper;
+import com.provectus.kafka.ui.pages.MainPage;
+import com.provectus.kafka.ui.pages.connector.ConnectorCreateView;
+import com.provectus.kafka.ui.pages.connector.ConnectorsList;
+import com.provectus.kafka.ui.pages.connector.ConnectorsView;
+import com.provectus.kafka.ui.pages.schema.SchemaCreateView;
+import com.provectus.kafka.ui.pages.schema.SchemaEditView;
+import com.provectus.kafka.ui.pages.schema.SchemaRegistryList;
+import com.provectus.kafka.ui.pages.schema.SchemaView;
+import com.provectus.kafka.ui.pages.topic.ProduceMessagePanel;
+import com.provectus.kafka.ui.pages.topic.TopicCreateEditSettingsView;
+import com.provectus.kafka.ui.pages.topic.TopicView;
+import com.provectus.kafka.ui.pages.topic.TopicsList;
+
+public abstract class Facade {
+    protected MainPage mainPage = new MainPage();
+    protected ApiHelper apiHelper = new ApiHelper();
+    protected ConnectorCreateView connectorCreateView = new ConnectorCreateView();
+    protected ConnectorsList connectorsList = new ConnectorsList();
+    protected ConnectorsView connectorsView = new ConnectorsView();
+    protected SchemaCreateView schemaCreateView = new SchemaCreateView();
+    protected SchemaEditView schemaEditView = new SchemaEditView();
+    protected SchemaView schemaView = new SchemaView();
+    protected SchemaRegistryList schemaRegistryList = new SchemaRegistryList();
+    protected ProduceMessagePanel produceMessagePanel = new ProduceMessagePanel();
+    protected TopicCreateEditSettingsView topicCreateEditSettingsView = new TopicCreateEditSettingsView();
+    protected TopicsList topicsList = new TopicsList();
+    protected TopicView topicView = new TopicView();
+}

+ 20 - 21
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/ConnectorsTests.java

@@ -1,12 +1,11 @@
 package com.provectus.kafka.ui.tests;
 package com.provectus.kafka.ui.tests;
 
 
 import com.provectus.kafka.ui.base.BaseTest;
 import com.provectus.kafka.ui.base.BaseTest;
-import com.provectus.kafka.ui.helpers.Helpers;
 import com.provectus.kafka.ui.models.Connector;
 import com.provectus.kafka.ui.models.Connector;
 import com.provectus.kafka.ui.models.Topic;
 import com.provectus.kafka.ui.models.Topic;
-import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
+import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import io.qase.api.annotation.CaseId;
 import io.qase.api.annotation.CaseId;
 import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.*;
 
 
@@ -15,6 +14,7 @@ import java.util.List;
 
 
 import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString;
 import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString;
 
 
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public class ConnectorsTests extends BaseTest {
 public class ConnectorsTests extends BaseTest {
     private static final long SUITE_ID = 10;
     private static final long SUITE_ID = 10;
     private static final String SUITE_TITLE = "Kafka Connect";
     private static final String SUITE_TITLE = "Kafka Connect";
@@ -40,14 +40,14 @@ public class ConnectorsTests extends BaseTest {
             .setConfig(getResourceAsString("config_for_create_connector_via_api.json"));
             .setConfig(getResourceAsString("config_for_create_connector_via_api.json"));
 
 
     @BeforeAll
     @BeforeAll
-    public static void beforeAll() {
+    public void beforeAll() {
         TOPIC_LIST.addAll(List.of(TOPIC_FOR_CREATE, TOPIC_FOR_DELETE, TOPIC_FOR_UPDATE));
         TOPIC_LIST.addAll(List.of(TOPIC_FOR_CREATE, TOPIC_FOR_DELETE, TOPIC_FOR_UPDATE));
         TOPIC_LIST.forEach(topic -> {
         TOPIC_LIST.forEach(topic -> {
-            Helpers.INSTANCE.apiHelper.createTopic(CLUSTER_NAME, topic.getName());
-            Helpers.INSTANCE.apiHelper.sendMessage(CLUSTER_NAME, topic);
+            apiHelper.createTopic(CLUSTER_NAME, topic.getName());
+            apiHelper.sendMessage(CLUSTER_NAME, topic);
         });
         });
         CONNECTOR_LIST.addAll(List.of(CONNECTOR_FOR_DELETE, CONNECTOR_FOR_UPDATE));
         CONNECTOR_LIST.addAll(List.of(CONNECTOR_FOR_DELETE, CONNECTOR_FOR_UPDATE));
-        CONNECTOR_LIST.forEach(connector -> Helpers.INSTANCE.apiHelper
+        CONNECTOR_LIST.forEach(connector -> apiHelper
                 .createConnector(CLUSTER_NAME, CONNECT_NAME, connector));
                 .createConnector(CLUSTER_NAME, CONNECT_NAME, connector));
     }
     }
 
 
@@ -60,14 +60,14 @@ public class ConnectorsTests extends BaseTest {
         Connector connectorForCreate = new Connector()
         Connector connectorForCreate = new Connector()
                 .setName("sink_postgres_activities_e2e_checks")
                 .setName("sink_postgres_activities_e2e_checks")
                 .setConfig(getResourceAsString("config_for_create_connector.json"));
                 .setConfig(getResourceAsString("config_for_create_connector.json"));
-        pages.openConnectorsList(CLUSTER_NAME)
+        connectorsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .clickCreateConnectorButton()
                 .clickCreateConnectorButton()
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .setConnectorConfig(connectorForCreate.getName(), connectorForCreate.getConfig());
                 .setConnectorConfig(connectorForCreate.getName(), connectorForCreate.getConfig());
-        pages.openConnectorsList(CLUSTER_NAME)
+        connectorsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        Assertions.assertTrue(pages.connectorsList.isConnectorVisible(connectorForCreate.getName()),"isConnectorVisible()");
+        Assertions.assertTrue(connectorsList.isConnectorVisible(connectorForCreate.getName()),"isConnectorVisible()");
         CONNECTOR_LIST.add(connectorForCreate);
         CONNECTOR_LIST.add(connectorForCreate);
     }
     }
 
 
@@ -77,15 +77,14 @@ public class ConnectorsTests extends BaseTest {
     @CaseId(196)
     @CaseId(196)
     @Test
     @Test
     public void updateConnector() {
     public void updateConnector() {
-        pages.openConnectorsList(CLUSTER_NAME)
+        connectorsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openConnector(CONNECTOR_FOR_UPDATE.getName());
                 .openConnector(CONNECTOR_FOR_UPDATE.getName());
-        pages.connectorsView
-                .waitUntilScreenReady()
+        connectorsView.waitUntilScreenReady()
                 .openConfigTab()
                 .openConfigTab()
                 .setConfig(CONNECTOR_FOR_UPDATE.getConfig());
                 .setConfig(CONNECTOR_FOR_UPDATE.getConfig());
-        pages.openConnectorsList(CLUSTER_NAME);
-        Assertions.assertTrue(pages.connectorsList.isConnectorVisible(CONNECTOR_FOR_UPDATE.getName()),"isConnectorVisible()");
+        connectorsList.goTo(CLUSTER_NAME);
+        Assertions.assertTrue(connectorsList.isConnectorVisible(CONNECTOR_FOR_UPDATE.getName()),"isConnectorVisible()");
     }
     }
 
 
     @DisplayName("should delete connector")
     @DisplayName("should delete connector")
@@ -94,19 +93,19 @@ public class ConnectorsTests extends BaseTest {
     @CaseId(195)
     @CaseId(195)
     @Test
     @Test
     public void deleteConnector() {
     public void deleteConnector() {
-        pages.openConnectorsList(CLUSTER_NAME)
+        connectorsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openConnector(CONNECTOR_FOR_DELETE.getName());
                 .openConnector(CONNECTOR_FOR_DELETE.getName());
-        pages.connectorsView.clickDeleteButton();
-        pages.openConnectorsList(CLUSTER_NAME);
-        Assertions.assertFalse(pages.connectorsList.isConnectorVisible(CONNECTOR_FOR_DELETE.getName()),"isConnectorVisible()");
+        connectorsView.clickDeleteButton();
+        connectorsList.goTo(CLUSTER_NAME);
+        Assertions.assertFalse(connectorsList.isConnectorVisible(CONNECTOR_FOR_DELETE.getName()),"isConnectorVisible()");
         CONNECTOR_LIST.remove(CONNECTOR_FOR_DELETE);
         CONNECTOR_LIST.remove(CONNECTOR_FOR_DELETE);
     }
     }
 
 
     @AfterAll
     @AfterAll
-    public static void afterAll() {
+    public void afterAll() {
         CONNECTOR_LIST.forEach(connector ->
         CONNECTOR_LIST.forEach(connector ->
-                Helpers.INSTANCE.apiHelper.deleteConnector(CLUSTER_NAME, CONNECT_NAME, connector.getName()));
-        TOPIC_LIST.forEach(topic -> Helpers.INSTANCE.apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
+                apiHelper.deleteConnector(CLUSTER_NAME, CONNECT_NAME, connector.getName()));
+        TOPIC_LIST.forEach(topic -> apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
     }
     }
 }
 }

+ 31 - 35
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/SchemasTests.java

@@ -2,14 +2,12 @@ package com.provectus.kafka.ui.tests;
 
 
 import com.provectus.kafka.ui.api.model.CompatibilityLevel;
 import com.provectus.kafka.ui.api.model.CompatibilityLevel;
 import com.provectus.kafka.ui.base.BaseTest;
 import com.provectus.kafka.ui.base.BaseTest;
-import com.provectus.kafka.ui.helpers.Helpers;
 import com.provectus.kafka.ui.models.Schema;
 import com.provectus.kafka.ui.models.Schema;
 import com.provectus.kafka.ui.pages.MainPage;
 import com.provectus.kafka.ui.pages.MainPage;
-import com.provectus.kafka.ui.pages.schema.SchemaEditView;
 import com.provectus.kafka.ui.pages.schema.SchemaView;
 import com.provectus.kafka.ui.pages.schema.SchemaView;
-import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
+import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import io.qase.api.annotation.CaseId;
 import io.qase.api.annotation.CaseId;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.*;
@@ -19,7 +17,7 @@ import java.util.List;
 
 
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 
 
-
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 public class SchemasTests extends BaseTest {
 public class SchemasTests extends BaseTest {
     private static final long SUITE_ID = 11;
     private static final long SUITE_ID = 11;
@@ -31,9 +29,9 @@ public class SchemasTests extends BaseTest {
 
 
     @BeforeAll
     @BeforeAll
     @SneakyThrows
     @SneakyThrows
-    public static void beforeAll() {
+    public void beforeAll() {
         SCHEMA_LIST.addAll(List.of(AVRO_API, JSON_API, PROTOBUF_API));
         SCHEMA_LIST.addAll(List.of(AVRO_API, JSON_API, PROTOBUF_API));
-        SCHEMA_LIST.forEach(schema -> Helpers.INSTANCE.apiHelper.createSchema(CLUSTER_NAME, schema));
+        SCHEMA_LIST.forEach(schema -> apiHelper.createSchema(CLUSTER_NAME, schema));
     }
     }
 
 
     @DisplayName("should create AVRO schema")
     @DisplayName("should create AVRO schema")
@@ -44,17 +42,17 @@ public class SchemasTests extends BaseTest {
     @Order(1)
     @Order(1)
     void createSchemaAvro() {
     void createSchemaAvro() {
         Schema schemaAvro = Schema.createSchemaAvro();
         Schema schemaAvro = Schema.createSchemaAvro();
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.clickCreateSchema()
+        schemaRegistryList.clickCreateSchema()
                 .setSubjectName(schemaAvro.getName())
                 .setSubjectName(schemaAvro.getName())
                 .setSchemaField(fileToString(schemaAvro.getValuePath()))
                 .setSchemaField(fileToString(schemaAvro.getValuePath()))
                 .selectSchemaTypeFromDropdown(schemaAvro.getType())
                 .selectSchemaTypeFromDropdown(schemaAvro.getType())
                 .clickSubmit()
                 .clickSubmit()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.mainPage
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        Assertions.assertTrue(pages.schemaRegistry.isSchemaVisible(schemaAvro.getName()),"isSchemaVisible()");
+        Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaAvro.getName()),"isSchemaVisible()");
         SCHEMA_LIST.add(schemaAvro);
         SCHEMA_LIST.add(schemaAvro);
     }
     }
 
 
@@ -66,13 +64,13 @@ public class SchemasTests extends BaseTest {
     @Order(2)
     @Order(2)
     void updateSchemaAvro() {
     void updateSchemaAvro() {
         AVRO_API.setValuePath(System.getProperty("user.dir") + "/src/main/resources/testData/schema_avro_for_update.json");
         AVRO_API.setValuePath(System.getProperty("user.dir") + "/src/main/resources/testData/schema_avro_for_update.json");
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.openSchema(AVRO_API.getName())
+        schemaRegistryList.openSchema(AVRO_API.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openEditSchema();
                 .openEditSchema();
-        Assertions.assertTrue(new SchemaEditView().isSchemaDropDownDisabled(),"isSchemaDropDownDisabled()");
-        new SchemaEditView().selectCompatibilityLevelFromDropdown(CompatibilityLevel.CompatibilityEnum.NONE)
+        Assertions.assertTrue(schemaEditView.isSchemaDropDownDisabled(),"isSchemaDropDownDisabled()");
+        schemaEditView.selectCompatibilityLevelFromDropdown(CompatibilityLevel.CompatibilityEnum.NONE)
                 .setNewSchemaValue(fileToString(AVRO_API.getValuePath()))
                 .setNewSchemaValue(fileToString(AVRO_API.getValuePath()))
                 .clickSubmit()
                 .clickSubmit()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
@@ -86,12 +84,12 @@ public class SchemasTests extends BaseTest {
     @Test
     @Test
     @Order(3)
     @Order(3)
     void deleteSchemaAvro() {
     void deleteSchemaAvro() {
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.openSchema(AVRO_API.getName())
+        schemaRegistryList.openSchema(AVRO_API.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .removeSchema();
                 .removeSchema();
-        Assertions.assertFalse(pages.schemaRegistry.isSchemaVisible(AVRO_API.getName()),"isSchemaVisible()");
+        Assertions.assertFalse(schemaRegistryList.isSchemaVisible(AVRO_API.getName()),"isSchemaVisible()");
         SCHEMA_LIST.remove(AVRO_API);
         SCHEMA_LIST.remove(AVRO_API);
     }
     }
 
 
@@ -103,17 +101,16 @@ public class SchemasTests extends BaseTest {
     @Order(4)
     @Order(4)
     void createSchemaJson() {
     void createSchemaJson() {
         Schema schemaJson = Schema.createSchemaJson();
         Schema schemaJson = Schema.createSchemaJson();
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.clickCreateSchema()
+        schemaRegistryList.clickCreateSchema()
                 .setSubjectName(schemaJson.getName())
                 .setSubjectName(schemaJson.getName())
                 .setSchemaField(fileToString(schemaJson.getValuePath()))
                 .setSchemaField(fileToString(schemaJson.getValuePath()))
                 .selectSchemaTypeFromDropdown(schemaJson.getType())
                 .selectSchemaTypeFromDropdown(schemaJson.getType())
                 .clickSubmit()
                 .clickSubmit()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.mainPage
-                .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        Assertions.assertTrue(pages.schemaRegistry.isSchemaVisible(schemaJson.getName()),"isSchemaVisible()");
+        mainPage.goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
+        Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaJson.getName()),"isSchemaVisible()");
         SCHEMA_LIST.add(schemaJson);
         SCHEMA_LIST.add(schemaJson);
     }
     }
 
 
@@ -124,12 +121,12 @@ public class SchemasTests extends BaseTest {
     @Test
     @Test
     @Order(5)
     @Order(5)
     void deleteSchemaJson() {
     void deleteSchemaJson() {
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.openSchema(JSON_API.getName())
+        schemaRegistryList.openSchema(JSON_API.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .removeSchema();
                 .removeSchema();
-        Assertions.assertFalse(pages.schemaRegistry.isSchemaVisible(JSON_API.getName()),"isSchemaVisible()");
+        Assertions.assertFalse(schemaRegistryList.isSchemaVisible(JSON_API.getName()),"isSchemaVisible()");
         SCHEMA_LIST.remove(JSON_API);
         SCHEMA_LIST.remove(JSON_API);
     }
     }
 
 
@@ -141,17 +138,16 @@ public class SchemasTests extends BaseTest {
     @Order(6)
     @Order(6)
     void createSchemaProtobuf() {
     void createSchemaProtobuf() {
         Schema schemaProtobuf = Schema.createSchemaProtobuf();
         Schema schemaProtobuf = Schema.createSchemaProtobuf();
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.clickCreateSchema()
+        schemaRegistryList.clickCreateSchema()
                 .setSubjectName(schemaProtobuf.getName())
                 .setSubjectName(schemaProtobuf.getName())
                 .setSchemaField(fileToString(schemaProtobuf.getValuePath()))
                 .setSchemaField(fileToString(schemaProtobuf.getValuePath()))
                 .selectSchemaTypeFromDropdown(schemaProtobuf.getType())
                 .selectSchemaTypeFromDropdown(schemaProtobuf.getType())
                 .clickSubmit()
                 .clickSubmit()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.mainPage
-                .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        Assertions.assertTrue(pages.schemaRegistry.isSchemaVisible(schemaProtobuf.getName()),"isSchemaVisible()");
+        mainPage.goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
+        Assertions.assertTrue(schemaRegistryList.isSchemaVisible(schemaProtobuf.getName()),"isSchemaVisible()");
         SCHEMA_LIST.add(schemaProtobuf);
         SCHEMA_LIST.add(schemaProtobuf);
     }
     }
 
 
@@ -162,17 +158,17 @@ public class SchemasTests extends BaseTest {
     @Test
     @Test
     @Order(7)
     @Order(7)
     void deleteSchemaProtobuf() {
     void deleteSchemaProtobuf() {
-        pages.openMainPage()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
-        pages.schemaRegistry.openSchema(PROTOBUF_API.getName())
+        schemaRegistryList.openSchema(PROTOBUF_API.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .removeSchema();
                 .removeSchema();
-        Assertions.assertFalse(pages.schemaRegistry.isSchemaVisible(PROTOBUF_API.getName()),"isSchemaVisible()");
+        Assertions.assertFalse(schemaRegistryList.isSchemaVisible(PROTOBUF_API.getName()),"isSchemaVisible()");
         SCHEMA_LIST.remove(PROTOBUF_API);
         SCHEMA_LIST.remove(PROTOBUF_API);
     }
     }
 
 
     @AfterAll
     @AfterAll
-    public static void afterAll() {
-        SCHEMA_LIST.forEach(schema -> Helpers.INSTANCE.apiHelper.deleteSchema(CLUSTER_NAME, schema.getName()));
+    public void afterAll() {
+        SCHEMA_LIST.forEach(schema -> apiHelper.deleteSchema(CLUSTER_NAME, schema.getName()));
     }
     }
 }
 }

+ 24 - 25
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/tests/TopicTests.java

@@ -1,14 +1,12 @@
 package com.provectus.kafka.ui.tests;
 package com.provectus.kafka.ui.tests;
 
 
 import com.provectus.kafka.ui.base.BaseTest;
 import com.provectus.kafka.ui.base.BaseTest;
-import com.provectus.kafka.ui.helpers.Helpers;
 import com.provectus.kafka.ui.models.Topic;
 import com.provectus.kafka.ui.models.Topic;
 import com.provectus.kafka.ui.pages.MainPage;
 import com.provectus.kafka.ui.pages.MainPage;
-import com.provectus.kafka.ui.pages.topic.TopicCreateEditSettingsView;
 import com.provectus.kafka.ui.pages.topic.TopicView;
 import com.provectus.kafka.ui.pages.topic.TopicView;
-import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
 import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
+import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
 import io.qase.api.annotation.CaseId;
 import io.qase.api.annotation.CaseId;
 import org.assertj.core.api.SoftAssertions;
 import org.assertj.core.api.SoftAssertions;
 import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.*;
@@ -18,6 +16,7 @@ import java.util.List;
 
 
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
 
 
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public class TopicTests extends BaseTest {
 public class TopicTests extends BaseTest {
     private static final long SUITE_ID = 2;
     private static final long SUITE_ID = 2;
     private static final String SUITE_TITLE = "Topics";
     private static final String SUITE_TITLE = "Topics";
@@ -33,9 +32,9 @@ public class TopicTests extends BaseTest {
     private static final List<Topic> TOPIC_LIST = new ArrayList<>();
     private static final List<Topic> TOPIC_LIST = new ArrayList<>();
 
 
     @BeforeAll
     @BeforeAll
-    public static void beforeAll() {
+    public void beforeAll() {
         TOPIC_LIST.addAll(List.of(TOPIC_FOR_UPDATE, TOPIC_FOR_DELETE));
         TOPIC_LIST.addAll(List.of(TOPIC_FOR_UPDATE, TOPIC_FOR_DELETE));
-        TOPIC_LIST.forEach(topic -> Helpers.INSTANCE.apiHelper.createTopic(CLUSTER_NAME, topic.getName()));
+        TOPIC_LIST.forEach(topic -> apiHelper.createTopic(CLUSTER_NAME, topic.getName()));
     }
     }
 
 
     @DisplayName("should create a topic")
     @DisplayName("should create a topic")
@@ -45,15 +44,15 @@ public class TopicTests extends BaseTest {
     @Test
     @Test
     public void createTopic() {
     public void createTopic() {
         Topic topicToCreate = new Topic().setName("new-topic");
         Topic topicToCreate = new Topic().setName("new-topic");
-        pages.open()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.TOPICS);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.TOPICS);
-        pages.topicsList.pressCreateNewTopic()
+        topicsList.pressCreateNewTopic()
                 .setTopicName(topicToCreate.getName())
                 .setTopicName(topicToCreate.getName())
                 .sendData()
                 .sendData()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.open()
+        mainPage.goTo()
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.TOPICS);
                 .goToSideMenu(CLUSTER_NAME, MainPage.SideMenuOptions.TOPICS);
-        Assertions.assertTrue(pages.topicsList.isTopicVisible(topicToCreate.getName()),"isTopicVisible");
+        Assertions.assertTrue(topicsList.isTopicVisible(topicToCreate.getName()),"isTopicVisible");
         TOPIC_LIST.add(topicToCreate);
         TOPIC_LIST.add(topicToCreate);
     }
     }
 
 
@@ -64,9 +63,9 @@ public class TopicTests extends BaseTest {
     @CaseId(197)
     @CaseId(197)
     @Test
     @Test
     public void updateTopic() {
     public void updateTopic() {
-        pages.openTopicsList(CLUSTER_NAME)
+        topicsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.topicsList.openTopic(TOPIC_FOR_UPDATE.getName())
+        topicsList.openTopic(TOPIC_FOR_UPDATE.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openEditSettings()
                 .openEditSettings()
                 .selectCleanupPolicy(TOPIC_FOR_UPDATE.getCompactPolicyValue())
                 .selectCleanupPolicy(TOPIC_FOR_UPDATE.getCompactPolicyValue())
@@ -76,16 +75,16 @@ public class TopicTests extends BaseTest {
                 .setMaxMessageBytes(TOPIC_FOR_UPDATE.getMaxMessageBytes())
                 .setMaxMessageBytes(TOPIC_FOR_UPDATE.getMaxMessageBytes())
                 .sendData()
                 .sendData()
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.openTopicsList(CLUSTER_NAME)
+        topicsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        pages.topicsList.openTopic(TOPIC_FOR_UPDATE.getName())
+        topicsList.openTopic(TOPIC_FOR_UPDATE.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openEditSettings();
                 .openEditSettings();
         SoftAssertions softly = new SoftAssertions();
         SoftAssertions softly = new SoftAssertions();
-        softly.assertThat(new TopicCreateEditSettingsView().getCleanupPolicy()).as("Cleanup Policy").isEqualTo(TOPIC_FOR_UPDATE.getCompactPolicyValue());
-        softly.assertThat(new TopicCreateEditSettingsView().getTimeToRetain()).as("Time to retain").isEqualTo(TOPIC_FOR_UPDATE.getTimeToRetainData());
-        softly.assertThat(new TopicCreateEditSettingsView().getMaxSizeOnDisk()).as("Max size on disk").isEqualTo(TOPIC_FOR_UPDATE.getMaxSizeOnDisk());
-        softly.assertThat(new TopicCreateEditSettingsView().getMaxMessageBytes()).as("Max message bytes").isEqualTo(TOPIC_FOR_UPDATE.getMaxMessageBytes());
+        softly.assertThat(topicCreateEditSettingsView.getCleanupPolicy()).as("Cleanup Policy").isEqualTo(TOPIC_FOR_UPDATE.getCompactPolicyValue());
+        softly.assertThat(topicCreateEditSettingsView.getTimeToRetain()).as("Time to retain").isEqualTo(TOPIC_FOR_UPDATE.getTimeToRetainData());
+        softly.assertThat(topicCreateEditSettingsView.getMaxSizeOnDisk()).as("Max size on disk").isEqualTo(TOPIC_FOR_UPDATE.getMaxSizeOnDisk());
+        softly.assertThat(topicCreateEditSettingsView.getMaxMessageBytes()).as("Max message bytes").isEqualTo(TOPIC_FOR_UPDATE.getMaxMessageBytes());
         softly.assertAll();
         softly.assertAll();
     }
     }
 
 
@@ -95,14 +94,14 @@ public class TopicTests extends BaseTest {
     @CaseId(207)
     @CaseId(207)
     @Test
     @Test
     public void deleteTopic() {
     public void deleteTopic() {
-        pages.openTopicsList(CLUSTER_NAME)
+        topicsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openTopic(TOPIC_FOR_DELETE.getName())
                 .openTopic(TOPIC_FOR_DELETE.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .deleteTopic();
                 .deleteTopic();
-        pages.openTopicsList(CLUSTER_NAME)
+        topicsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady();
                 .waitUntilScreenReady();
-        Assertions.assertFalse(pages.topicsList.isTopicVisible(TOPIC_FOR_DELETE.getName()),"isTopicVisible");
+        Assertions.assertFalse(topicsList.isTopicVisible(TOPIC_FOR_DELETE.getName()),"isTopicVisible");
         TOPIC_LIST.remove(TOPIC_FOR_DELETE);
         TOPIC_LIST.remove(TOPIC_FOR_DELETE);
     }
     }
 
 
@@ -112,7 +111,7 @@ public class TopicTests extends BaseTest {
     @CaseId(222)
     @CaseId(222)
     @Test
     @Test
     void produceMessage() {
     void produceMessage() {
-        pages.openTopicsList(CLUSTER_NAME)
+        topicsList.goTo(CLUSTER_NAME)
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
                 .openTopic(TOPIC_FOR_UPDATE.getName())
                 .openTopic(TOPIC_FOR_UPDATE.getName())
                 .waitUntilScreenReady()
                 .waitUntilScreenReady()
@@ -122,13 +121,13 @@ public class TopicTests extends BaseTest {
                 .setKeyField(TOPIC_FOR_UPDATE.getMessageKey())
                 .setKeyField(TOPIC_FOR_UPDATE.getMessageKey())
                 .submitProduceMessage();
                 .submitProduceMessage();
         SoftAssertions softly = new SoftAssertions();
         SoftAssertions softly = new SoftAssertions();
-        softly.assertThat(pages.topicView.isKeyMessageVisible((TOPIC_FOR_UPDATE.getMessageKey()))).withFailMessage("isKeyMessageVisible()").isTrue();
-        softly.assertThat(pages.topicView.isContentMessageVisible((TOPIC_FOR_UPDATE.getMessageContent()).trim())).withFailMessage("isContentMessageVisible()").isTrue();
+        softly.assertThat(topicView.isKeyMessageVisible((TOPIC_FOR_UPDATE.getMessageKey()))).withFailMessage("isKeyMessageVisible()").isTrue();
+        softly.assertThat(topicView.isContentMessageVisible((TOPIC_FOR_UPDATE.getMessageContent()).trim())).withFailMessage("isContentMessageVisible()").isTrue();
         softly.assertAll();
         softly.assertAll();
     }
     }
 
 
     @AfterAll
     @AfterAll
-    public static void afterAll() {
-        TOPIC_LIST.forEach(topic -> Helpers.INSTANCE.apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
+    public void afterAll() {
+        TOPIC_LIST.forEach(topic -> apiHelper.deleteTopic(CLUSTER_NAME, topic.getName()));
     }
     }
 }
 }