BaseTest.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.provectus.kafka.ui;
  2. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.BROKERS;
  3. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.CONSUMERS;
  4. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.KAFKA_CONNECT;
  5. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.KSQL_DB;
  6. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.SCHEMA_REGISTRY;
  7. import static com.provectus.kafka.ui.pages.panels.enums.MenuItem.TOPICS;
  8. import static com.provectus.kafka.ui.settings.BaseSource.BASE_UI_URL;
  9. import static com.provectus.kafka.ui.settings.drivers.WebDriver.browserClear;
  10. import static com.provectus.kafka.ui.settings.drivers.WebDriver.browserQuit;
  11. import static com.provectus.kafka.ui.settings.drivers.WebDriver.browserSetup;
  12. import static com.provectus.kafka.ui.settings.drivers.WebDriver.loggerSetup;
  13. import static com.provectus.kafka.ui.utilities.qase.QaseSetup.qaseIntegrationSetup;
  14. import com.codeborne.selenide.Condition;
  15. import com.codeborne.selenide.Selenide;
  16. import com.codeborne.selenide.SelenideElement;
  17. import com.provectus.kafka.ui.settings.listeners.AllureListener;
  18. import com.provectus.kafka.ui.settings.listeners.LoggerListener;
  19. import com.provectus.kafka.ui.settings.listeners.QaseResultListener;
  20. import io.qameta.allure.Step;
  21. import java.util.List;
  22. import lombok.extern.slf4j.Slf4j;
  23. import org.testng.annotations.AfterMethod;
  24. import org.testng.annotations.AfterSuite;
  25. import org.testng.annotations.BeforeMethod;
  26. import org.testng.annotations.BeforeSuite;
  27. import org.testng.annotations.Listeners;
  28. import org.testng.asserts.SoftAssert;
  29. @Slf4j
  30. @Listeners({AllureListener.class, LoggerListener.class, QaseResultListener.class})
  31. public abstract class BaseTest extends Facade {
  32. @BeforeSuite(alwaysRun = true)
  33. public void beforeSuite() {
  34. qaseIntegrationSetup();
  35. loggerSetup();
  36. browserSetup();
  37. }
  38. @AfterSuite(alwaysRun = true)
  39. public void afterSuite() {
  40. browserQuit();
  41. }
  42. @BeforeMethod(alwaysRun = true)
  43. public void beforeMethod() {
  44. Selenide.open(BASE_UI_URL);
  45. naviSideBar.waitUntilScreenReady();
  46. }
  47. @AfterMethod(alwaysRun = true)
  48. public void afterMethod() {
  49. browserClear();
  50. }
  51. @Step
  52. protected void navigateToBrokers() {
  53. naviSideBar
  54. .openSideMenu(BROKERS);
  55. brokersList
  56. .waitUntilScreenReady();
  57. }
  58. @Step
  59. protected void navigateToBrokersAndOpenDetails(int brokerId) {
  60. naviSideBar
  61. .openSideMenu(BROKERS);
  62. brokersList
  63. .waitUntilScreenReady()
  64. .openBroker(brokerId);
  65. brokersDetails
  66. .waitUntilScreenReady();
  67. }
  68. @Step
  69. protected void navigateToTopics() {
  70. naviSideBar
  71. .openSideMenu(TOPICS);
  72. topicsList
  73. .waitUntilScreenReady()
  74. .setShowInternalRadioButton(false);
  75. }
  76. @Step
  77. protected void navigateToTopicsAndOpenDetails(String topicName) {
  78. navigateToTopics();
  79. topicsList
  80. .openTopic(topicName);
  81. topicDetails
  82. .waitUntilScreenReady();
  83. }
  84. @Step
  85. protected void navigateToConsumers() {
  86. naviSideBar
  87. .openSideMenu(CONSUMERS);
  88. consumersList
  89. .waitUntilScreenReady();
  90. }
  91. @Step
  92. protected void navigateToSchemaRegistry() {
  93. naviSideBar
  94. .openSideMenu(SCHEMA_REGISTRY);
  95. schemaRegistryList
  96. .waitUntilScreenReady();
  97. }
  98. @Step
  99. protected void navigateToSchemaRegistryAndOpenDetails(String schemaName) {
  100. navigateToSchemaRegistry();
  101. schemaRegistryList
  102. .openSchema(schemaName);
  103. schemaDetails
  104. .waitUntilScreenReady();
  105. }
  106. @Step
  107. protected void navigateToConnectors() {
  108. naviSideBar
  109. .openSideMenu(KAFKA_CONNECT);
  110. kafkaConnectList
  111. .waitUntilScreenReady();
  112. }
  113. @Step
  114. protected void navigateToConnectorsAndOpenDetails(String connectorName) {
  115. navigateToConnectors();
  116. kafkaConnectList
  117. .openConnector(connectorName);
  118. connectorDetails
  119. .waitUntilScreenReady();
  120. }
  121. @Step
  122. protected void navigateToKsqlDb() {
  123. naviSideBar
  124. .openSideMenu(KSQL_DB);
  125. ksqlDbList
  126. .waitUntilScreenReady();
  127. }
  128. @Step
  129. protected void verifyElementsCondition(List<SelenideElement> elementList, Condition expectedCondition) {
  130. SoftAssert softly = new SoftAssert();
  131. elementList.forEach(element -> softly.assertTrue(element.is(expectedCondition),
  132. element.getSearchCriteria() + " is " + expectedCondition));
  133. softly.assertAll();
  134. }
  135. }