From 4d10c1446f6857e8e596218b8adc909d42f177f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=20=D0=92=D0=BB=D0=B0=D0=B4=D0=B8=D0=BC=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Fri, 4 Jul 2025 20:58:18 +0300 Subject: [PATCH] bdd added cucumber --- README.md | 34 +------ img_1.png | Bin 0 -> 55967 bytes pom.xml | 86 +++++++++++------ .../java/ru/ibs/framework/CucumberRunner.java | 14 +++ .../ru/ibs/tests/ApplineBusinessTripTest.java | 63 ------------ .../java/ru/ibs/tests/BusinessTripSteps.java | 91 ++++++++++++++++++ .../features/cucumberScenario.feature | 19 ++++ 7 files changed, 180 insertions(+), 127 deletions(-) create mode 100644 img_1.png create mode 100644 src/test/java/ru/ibs/framework/CucumberRunner.java delete mode 100644 src/test/java/ru/ibs/tests/ApplineBusinessTripTest.java create mode 100644 src/test/java/ru/ibs/tests/BusinessTripSteps.java create mode 100644 src/test/resources/features/cucumberScenario.feature diff --git a/README.md b/README.md index 8326355..74aff3f 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,3 @@ -Изменён pom файл для отображения allure отчётов. -Успешно собирается в allure-reports/ - -Добавлена возможность скриншотов по шагам -``` -AllureUtils.attachScreenshot() -``` - -а также при ошибках - -```@Rule -public MyAllureListener allureListener = new MyAllureListener(); -``` - - -``` -public class MyAllureListener extends TestWatcher { - - @Override - protected void failed(Throwable e, Description description) { - takeScreenshot(); - } - - @Attachment(value = "Screenshot on failure", type = "image/png") - public byte[] takeScreenshot() { - return ((TakesScreenshot) DriverManager.getDriverManager().getDriver()) - .getScreenshotAs(OutputType.BYTES); - } -} -``` - -![img.png](img.png) +Изменён pom файл для поддержки cucumber, добавлен cucumberScenario.feature, класс BusinessTripSteps +![img_1.png](img_1.png) diff --git a/img_1.png b/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..59ed76d385cc8471749f0c4300e5ff9774a6c185 GIT binary patch literal 55967 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index c45d3d0..1243821 100644 --- a/pom.xml +++ b/pom.xml @@ -1,22 +1,34 @@ - + 4.0.0 + ru.ibs sel1 1.0-SNAPSHOT Archetype - sel1 https://git.goodtester.ru + + 8 + 8 + UTF-8 + 1.9.7 + 2.13.5 + 7.15.0 + + - + org.seleniumhq.selenium selenium-java 4.33.0 - + junit junit @@ -24,35 +36,58 @@ test + - io.qameta.allure - allure-junit4 - 2.13.5 + io.cucumber + cucumber-java + ${cucumber.version} + + io.cucumber + cucumber-junit + ${cucumber.version} + + + + + io.qameta.allure + allure-junit4 + ${allure.version} + + + + io.qameta.allure + allure-cucumber7-jvm + 2.25.0 + + + org.aspectj aspectjweaver - 1.9.7 + ${aspectj.version} + org.apache.maven.plugins maven-compiler-plugin 3.8.1 - 8 - 8 - UTF-8 + ${maven.compiler.source} + ${maven.compiler.target} + ${encoding} + true - + org.apache.maven.plugins maven-surefire-plugin @@ -60,30 +95,19 @@ true - -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.9.7/aspectjweaver-1.9.7.jar" + -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" ${project.build.directory}/allure-results - - - listener - io.qameta.allure.junit4.AllureJunit4 - - + + - - - - org.aspectj - aspectjweaver - 1.9.7 - - - - + io.qameta.allure allure-maven @@ -103,9 +127,7 @@ + - - - diff --git a/src/test/java/ru/ibs/framework/CucumberRunner.java b/src/test/java/ru/ibs/framework/CucumberRunner.java new file mode 100644 index 0000000..e6f3a90 --- /dev/null +++ b/src/test/java/ru/ibs/framework/CucumberRunner.java @@ -0,0 +1,14 @@ +package ru.ibs.framework; + +import io.cucumber.junit.Cucumber; +import io.cucumber.junit.CucumberOptions; +import org.junit.runner.RunWith; + +@RunWith(Cucumber.class) +@CucumberOptions( + features = "src/test/resources/features", + glue = "ru.ibs.tests", + plugin = {"pretty", "io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm"}, + snippets = CucumberOptions.SnippetType.CAMELCASE +) +public class CucumberRunner {} \ No newline at end of file diff --git a/src/test/java/ru/ibs/tests/ApplineBusinessTripTest.java b/src/test/java/ru/ibs/tests/ApplineBusinessTripTest.java deleted file mode 100644 index 2d67a06..0000000 --- a/src/test/java/ru/ibs/tests/ApplineBusinessTripTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.ibs.tests; - -import org.junit.*; -import org.openqa.selenium.By; -import ru.ibs.framework.managers.DriverManager; -import ru.ibs.framework.utils.AllureUtils; -import ru.ibs.framework.utils.MyAllureListener; - -public class ApplineBusinessTripTest extends BaseTests { - - private LoginPage loginPage; - private DashboardPage dashboardPage; - private BusinessTripPage businessTripPage; - - @Rule - public MyAllureListener allureListener = new MyAllureListener(); - - @Before - public void setUp() { - // Получаем драйвер из DriverManager (инициализирован в BaseTests) - loginPage = new LoginPage(DriverManager.getDriverManager().getDriver()); - - // Открываем страницу логина - DriverManager.getDriverManager().getDriver().get("http://training.appline.ru/user/login"); - } - - @Test - public void applineLoginScenario() { - AllureUtils.attachScreenshot(); - dashboardPage = loginPage.login("Irina Filippova", "testing"); - Assert.assertTrue("Dashboard not loaded", dashboardPage.isDashboardLoaded()); - - businessTripPage = dashboardPage.goToBusinessTrip(); - Assert.assertTrue("Trips page not loaded", businessTripPage.isTripsPageLoaded()); - - businessTripPage.openCreateTripForm(); - - businessTripPage.selectDepartment("Отдел внутренней разработки"); - businessTripPage.selectOrganization("Edge"); - businessTripPage.setTicketsCheckbox(true); - businessTripPage.fillCity("Дмитров"); - - AllureUtils.attachScreenshot(); - - businessTripPage.fillDate( - By.xpath("//input[@placeholder='Укажите дату' and contains(@id, 'departureDatePlan')]"), - "01.01.2025" - ); - - businessTripPage.fillDate( - By.xpath("//input[@placeholder='Укажите дату' and contains(@id, 'returnDatePlan')]"), - "10.01.2025" - ); - - AllureUtils.attachScreenshot(); - - businessTripPage.saveAndClose(); - - Assert.assertTrue("Expected validation error not shown", - businessTripPage.isErrorDisplayed("Список командируемых сотрудников не может быть пустым")); - } - -} diff --git a/src/test/java/ru/ibs/tests/BusinessTripSteps.java b/src/test/java/ru/ibs/tests/BusinessTripSteps.java new file mode 100644 index 0000000..1b99cbc --- /dev/null +++ b/src/test/java/ru/ibs/tests/BusinessTripSteps.java @@ -0,0 +1,91 @@ +package ru.ibs.tests; + +import io.cucumber.java.ru.*; +import static org.junit.Assert.*; + +import io.cucumber.java.After; +import org.openqa.selenium.By; +import ru.ibs.framework.managers.DriverManager; +import ru.ibs.tests.*; + +public class BusinessTripSteps { + + private final LoginPage loginPage = new LoginPage(DriverManager.getDriverManager().getDriver()); + private DashboardPage dashboardPage; + private BusinessTripPage businessTripPage; + + @Дано("Открываем страницу логина") + public void openLoginPage() { + DriverManager.getDriverManager().getDriver().get("http://training.appline.ru/user/login"); + } + + @И("Вводим логин {string} и пароль {string}") + public void login(String username, String password) { + dashboardPage = loginPage.login(username, password); + } + + @И("Проверяем, что панель быстрого запуска загружена") + public void dashboardLoaded() { + assertTrue("Dashboard not loaded", dashboardPage.isDashboardLoaded()); + } + + @И("Переходим в раздел {string}") + public void goToBusinessTrip(String name) { + businessTripPage = dashboardPage.goToBusinessTrip(); + } + + @И("Проверяем, что страница {string} загружена") + public void tripsPageLoaded(String title) { + assertTrue("Trips page not loaded", businessTripPage.isTripsPageLoaded()); + } + + @И("Нажимаем на кнопку создания новой командировки") + public void openCreateTripForm() { + businessTripPage.openCreateTripForm(); + } + + @И("Выбираем подразделение {string}") + public void selectDepartment(String department) { + businessTripPage.selectDepartment(department); + } + + @И("Выбираем организацию {string}") + public void selectOrganization(String organization) { + businessTripPage.selectOrganization(organization); + } + + @И("Устанавливаем чекбокс {string} в положение {string}") + public void setCheckbox(String checkboxName, String value) { + boolean checked = Boolean.parseBoolean(value); + businessTripPage.setTicketsCheckbox(checked); + } + + @И("Заполняем поле {string} значением {string}") + public void fillCityOrDate(String field, String value) { + if (field.equalsIgnoreCase("Город")) { + businessTripPage.fillCity(value); + } else if (field.equalsIgnoreCase("Дата отправления")) { + businessTripPage.fillDate(By.xpath("//input[@placeholder='Укажите дату' and contains(@id, 'departureDatePlan')]"), value); + } else if (field.equalsIgnoreCase("Дата возвращения")) { + businessTripPage.fillDate(By.xpath("//input[@placeholder='Укажите дату' and contains(@id, 'returnDatePlan')]"), value); + } + } + + @И("Нажимаем кнопку {string}") + public void clickButton(String buttonName) { + if (buttonName.equals("Сохранить и закрыть")) { + businessTripPage.saveAndClose(); + } + } + + @Тогда("Проверяем, что отображается ошибка {string}") + public void checkError(String errorText) { + assertTrue("Expected validation error not shown", + businessTripPage.isErrorDisplayed(errorText)); + } + + @After + public void tearDown() { + DriverManager.getDriverManager().quitDriver(); + } +} diff --git a/src/test/resources/features/cucumberScenario.feature b/src/test/resources/features/cucumberScenario.feature new file mode 100644 index 0000000..5d544a3 --- /dev/null +++ b/src/test/resources/features/cucumberScenario.feature @@ -0,0 +1,19 @@ +# language: ru +@businessTrip +Функционал: Создание командировки + + Сценарий: Проверка ошибки при попытке создать командировку без сотрудников + * Открываем страницу логина + * Вводим логин "Irina Filippova" и пароль "testing" + * Проверяем, что панель быстрого запуска загружена + * Переходим в раздел "Командировки" + * Проверяем, что страница "Командировки" загружена + * Нажимаем на кнопку создания новой командировки + * Выбираем подразделение "Отдел внутренней разработки" + * Выбираем организацию "Edge" + * Устанавливаем чекбокс "Заказ билетов" в положение "true" + * Заполняем поле "Город" значением "Дмитров" + * Заполняем поле "Дата отправления" значением "01.01.2025" + * Заполняем поле "Дата возвращения" значением "10.01.2025" + * Нажимаем кнопку "Сохранить и закрыть" + * Проверяем, что отображается ошибка "Список командируемых сотрудников не может быть пустым"