Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разработчиков
•Download as PPTX, PDF•
3 likes•5,156 views
Как-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
1 of 35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
More Related Content
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разработчиков
1. Бодрящий микс из Selenium и TestNG
Регрессионное тестирование руками
разработчиков
Ребров Андрей
Luxoft
8. При этом...
• «У нас agile» - значит, тестирование
должно завершиться в том же спринте
• «Люблю короткие релизы»- значит
регрессионное тестирование надо делать
постоянно
• «Они опять изменили требования!» -
значит опять надо менять тесты
10. Задачи
• Нужно иметь возможность проводить
регрессию в короткий период времени
• Тесты должны быть простыми, чтобы их
можно было легко
написать/дописать/переписать
• Поддержка тестов не должна занимать
много времени
11. Необходимые инструменты
• Тестовый фреймворк
• Фреймворк функционального тестирования
• CI Server
+ удобная IDE, понятный генератор отчетов,
удобный язык программирования...
12. Что взяли мы
• TestNG
• Selenium 2 / WebDriver
• Spring
• IntelliJ IDEA
• Jenkins
• Набор самописных утилит
13. Почему TestNG
• Удобная работа с данными - @DataProvider
• Разбиение тестов по группам
• Многопоточность «из коробки»
• «Фабрика» тестов
14. Почему WebDriver
• Java-фреймворк
• Абстракция на уровне PageObject
• Работа с IE & FF
• Активно развивается
15. Зачем Spring?
• Облегчение работы с базами данных
• Необходима интеграция с различными
сервисами в рамках тестов
• IoC
31. Хинт 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");
}
32. Подключаем Jenkins
• Используем возможность запуска через
maven
• Подключаем отчеты от TestNG и видим
результаты регрессии
• Запуск тестов по расписанию / установке
новой версии / …
34. Куда двигаться дальше
• Создание профилей тестирования (smokem
full, search)
• Selenium Grid и многопоточность
• 1 подход – разные типы приложений
(WebService, ETL, ...)
• End-to-end тестирование