3. Задачи
• Нужно иметь возможность проводить
регрессию в короткий период времени
• Тесты должны быть простыми, чтобы их
можно было легко
написать/дописать/переписать
• Поддержка тестов не должна занимать
много времени
4. Необходимые инструменты
• Тестовый фреймворк
• Фреймворк функционального тестирования
• CI Server
•+ удобная IDE, понятный генератор отчетов,
удобный язык программирования...
5. Что взяли мы
• TestNG
• Selenium 2 / WebDriver
• Spring
• IntelliJ IDEA
• Jenkins
• Набор самописных утилит
6. Почему TestNG
• Удобная работа с данными - @DataProvider
• Разбиение тестов по группам
• Многопоточность «из коробки»
• «Фабрика» тестов
7. Почему WebDriver
• Java-фреймворк
• Абстракция на уровне PageObject
• Работа с IE & FF
• Активно развивается
8. Зачем Spring?
• Облегчение работы с базами данных
• Необходима интеграция с различными
сервисами в рамках тестов
• IoC
24. Хинт 4 – Подключаем javascript
public void waitForAjaxComplete() {
log.verbose("waiting for ajax completion");
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return (Boolean) js.executeScript("return $.active == 0");
}
});
log.verbose("All ajax calls are complete");
}
25. Подключаем Jenkins
• Используем возможность запуска через
maven
• Подключаем отчеты от TestNG и видим
результаты регрессии
• Запуск тестов по расписанию / установке
новой версии / …
26. Куда двигаться дальше
• Создание профилей тестирования (smokem
full, search)
• Selenium Grid и многопоточность
• 1 подход – разные типы приложений
(WebService, ETL, ...)
• End-to-end тестирование