Используем на нескольких проектах Thucydides. Достаточно давно и довольно успешно, но в новом проекте заметил, что тесты выполняются уж очень медленно. Т.е., скажем, поиск элемента и ввод в него текста может занять секунду-две.
Начал пытаться исправить эту ситуацию и вот что попробовал:
- Переписал всё на скорую руку без использования Thucydides - всё работает молниеносно.
- Попытался поэкспериментировать с версией Thucydides - безрезультатно
- Попробовал сделать степы более глобальными и перестал использовать вызов одних степов внутри других, т.е., грубо говоря, если раньше у меня был такие степы:
@Step
public void logs_in_as(String username, String password) {
enters_username(username);
enters_password(password);
clicks_login_button();
}
@Step
public void enters_username(String username)
{
onStartPage().enterUsername(username);
}
@Step
public void enters_password(String password)
{
onStartPage().enterPassword(password);
}
@Step
public void clicks_login_button()
{
onStartPage().clickLoginButton();
}
то теперь всё выглядит как:
@Step
public void logs_in_as(String username, String password) {
onStartPage().logInAs(username, password);
}
и вся логика, соответственно, внутри пейдж обжекта.
Это помогло. Время прохождения степа судя по логу Thucydides сократилось с 16 до 4 секунд.
Но, во-первых, 4 секунды это всё равно не идеально, а во-вторых, что не так с этими степами, что время растягивается аж в 4 раза?
В данном примере очевидно, что некоторое время тратится на вызов метода onStartPage
public StartPage onStartPage()
{
return pages().get(StartPage.class);
}
Но даже при использовании:
StartPage startPage;
startPage.logInAs(username, password);
выйгрыш во времени в пределах погрешности.
Может кто-то сталкивался с подобным или пытался как-то ускорить свои Thucydides тесты. Или просто есть какие-то идеи