bdd added cucumber
This commit is contained in:
@@ -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 {}
|
||||
@@ -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("Список командируемых сотрудников не может быть пустым"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
# language: ru
|
||||
@businessTrip
|
||||
Функционал: Создание командировки
|
||||
|
||||
Сценарий: Проверка ошибки при попытке создать командировку без сотрудников
|
||||
* Открываем страницу логина
|
||||
* Вводим логин "Irina Filippova" и пароль "testing"
|
||||
* Проверяем, что панель быстрого запуска загружена
|
||||
* Переходим в раздел "Командировки"
|
||||
* Проверяем, что страница "Командировки" загружена
|
||||
* Нажимаем на кнопку создания новой командировки
|
||||
* Выбираем подразделение "Отдел внутренней разработки"
|
||||
* Выбираем организацию "Edge"
|
||||
* Устанавливаем чекбокс "Заказ билетов" в положение "true"
|
||||
* Заполняем поле "Город" значением "Дмитров"
|
||||
* Заполняем поле "Дата отправления" значением "01.01.2025"
|
||||
* Заполняем поле "Дата возвращения" значением "10.01.2025"
|
||||
* Нажимаем кнопку "Сохранить и закрыть"
|
||||
* Проверяем, что отображается ошибка "Список командируемых сотрудников не может быть пустым"
|
||||
Reference in New Issue
Block a user