Наверное все таки большинство из нас пользуется Selenium WD и знает что наверное самое слабое место у него-это отчеты(вообще говоря их вообще нет),для репортинга в основном используются или плагины или отчеты с Junit или TestNG(если это Java).
Так вот Thsidides призван внести в разработку тестов не только некоторые улучшения,но самое главное хорошие отчеты.
Немного истории!(надо ж как то разнообразить рассказ)
Thusidides переводится как Фукиди́д,был древнегреческим историком,который прославился именно качественными репортами,отсюда и название этого фреймворка.
История закончилась,перейдем к делу.
Тесты набрасывались для примера и чтобы просто показать принцип,естественно они не поддерживаемые и все такое.
Для начала,чтобы подключить его к нашему проекту,добавим в Maven следующее:
Все после добавления в проект,начнем разбираться как он нам предлагает структурировать наши тесты.
Вообще он больше рассчитан на приемочные тесты.Вы это сами заметите.
Создается общий класс для требований,фич и.т.д.
public class Application {
@Feature
public class TestPageBook {}
public class TestAuth{}
public class TestSearch{}
}
Как мы видим,в одной фиче может быть несколько классов и конечно может быть несколько фич.
После этого создается класс с тестом
@RunWith(ThucydidesRunner.class)
@Story(Application.TestPageBook.class)
public class TestPageBook {
@Managed
public WebDriver driver;
@ManagedPages(defaultUrl = "http://m.megafonpro.ru/")
public Pages pages;
@Steps
public StepsinBook book;
@Test
public void testBook() throws Exception {
book.getMain("http://m.megafonpro.ru/"); //Вход на главную страницу тестируемого ресурса
book.AllBooks(); //Переход во вкладку Все книги
book.search(); //Поиск книги с поисковым выражением "Книга
book.catalog(); //Проверка каталога книг по жанрам
}
@Pending @Test //данная аннотация значит,что тест еще не имплементирован
public void testBuyBook(){}
}
Далее описываются шаги самого теста,Steps как они называются здесь.
public class StepsinBook extends ScenarioSteps {
public StepsinBook(Pages pages) {
super(pages);
}
public BookPage getPageBook()
{
return getPages().currentPageAt(BookPage.class);
}
@Step
public void getMain(String url)
{
getPageBook().getMainPage(url);
}
@Step
public void AllBooks()
{
getPageBook().allBooks();
}
@Step
public void search(){
getPageBook().search("Книга");
}
@Step
public void catalog(){
getPageBook().catalog();
}
}
Конечно есть. Есть 2 для easyb и junit Например вот так это выглядит: net.thusidides:thusidides-simple-archetype или net.thusidides:thusidides-easyb-archetype
команда "R" благодарна тебе!
ОтветитьУдалитьа есть какой-нибудь archetype для сусидис+вебдрайвер? чтобюы получилась структура с примерами? )
ОтветитьУдалитьКонечно есть.
ОтветитьУдалитьЕсть 2 для easyb и junit
Например вот так это выглядит:
net.thusidides:thusidides-simple-archetype
или
net.thusidides:thusidides-easyb-archetype