Автор: Егор Лебедев и Денис Сахаров
Разработали и внедрили систему автоматического тестирования ВСЕХ(!) сайтов с помощью Nightwatch.js и Selenium. Задачи об ошибках ставятся в корпоративную систему управления проектами. Одна задача равна одному типу теста. В тексте задачи разработчик видит список ссылок на страницы, где данный тест провалился.
Автором выступил наш старший разработчик — Егор Лебедев, который по результатам разработки был переаттестован в Ведущего.
Этапы реализации
- Программирование краулера, строящего полную карту сайта.
- Программирование системы выполнения произвольного количества тестов по загруженной в браузер странице.
- Программирование системы, строящей отчеты с ошибками.
- Внедрение, получившегося продукта, в работу(для этого использовались результаты из наших предыдущих крупных инфраструктурных задач: внедрение CI и надстройки над багтрекером).
- Написание ряда общих тестов.
Примеры тестов
- Битые ссылки.
- Наличие заполненных тайтлов, служебных заголовков, тегов H1 и прочего для целей SEO.
- Правильность отображения на разных разрешениях(наличие скролла, кликабельность ссылок).
- Проверка ошибок JS.
- Проверка нашего стандарта публикации.
- И т.д.
В итоге мы получили систему, которая автоматически по некоторому расписанию ходит на ВСЕ (ЭТО КЛЮЧЕВОЕ СЛОВО В СТАТЬЕ, КЛЮЧЕВОЕ ДОСТИЖЕНИЕ ЭТОГО ПРОЕКТА) обслуживаемые нами сайты и тестирует их. Система позволяет писать специфичные тесты под каждый обслуживаемый сайт. От идеи до реализации прошло около года, срок активной разработки — 2-3 месяца.
В планах по дальнейшему развитию написание большего количества тестов.