Коллеги, добрый день!
В автоматизации довольно недавно. И это мой первый проект, стараюсь сделать все по уму.
Патерн PageObject, а в частности PageFactory показался мне интересным из-за возможностей инкапсуляции.
Описал страницы.
Написал свой первый тест.
Выглядит он примерно так:
@Test public void refuse_to_client() { MainPage mainPage = new MainPage(driver); mainPage.loginToSystemByUser() //Логинимся на страницу 1 .openNewClient(client_ID).goToSystemDecisionPage().decisionRefuse() //Отказываем на странице 2 .addComment("Клиент некрасивый") //Добавляем комментарий по отказу на странице 3 .sendToWork() //Жмем Ок на странице 2 .sendToProcessing() //Отправляем на странице 1 }
Все выглядит относительно красиво. Но когда я стал крепить отчетность к этому тесту в виде Allure я понял, что вместо системы Test > Steps > Pages сделал просто Test > Pages, что не совсем корректно. Фигня вопрос подумал я и написал вариант №2
@Test public void refuse_to_client() { login(); appRefuse(); appDecisiobRefuse(); addingComment(); pressOKButton(); sendToProcessing(); } @Step("Логинимся") private void login() { LoginPage loginPage = new LoginPage(driver) loginPage.loginToSystemByUser() } @Step("Поиск заявки") private void appSearch() { MainPage mainPage = new MainPage(driver) mainPage.openNewClient(appno); } @Step("Пользователю отказывают") private void clientDecisionRefuse() { appDecisionPage appDecisionPage = new AppDecisionPage(driver); appDecisionPage.goToSystemDecisionPage().decisionRefuse(); } @Step("Добавление комментария по отказу") private void addingComment() { CommentPage commentPage = new CommentPage(driver); commentPage.addComment("Сам ты некрасивый"); } @Step("Нажать ОК") private void pressOkButton() { FaTsmPage faTsmPage = new FaTsmPage(driver); faTsmPage.sendToWork(); } @Step("Отправка в обработку") private void sendToProcessing() { appDecisionPage appDecisionPage = new AppDecisionPage(driver); appDecisionPage.SendToProcessing(); }
И вот тут у меня возник вопрос из-за того, что приходится создавать новые экземпляры страниц, а некоторые приходится создавать дважды (например appDecisionPage) как склеить @Step Allure и подход PageFactory?