Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестирование на wrike.com»
1. 1#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
Wrike Tech Club
#Wrike Test Automation Process#
QA Automation Team
19/05/2016
2. 2#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
Wrike - это сервис для управления проектами и
совместной работы. Мы создаём ведущее
приложение, которым пользуются тысячи
компаний по всему миру, включая нас самих;
Wrike - это 5 офисов по всему миру, со штаб-
квартирой в Mountain View, CA;
3. 3#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
➔ 10000+ клиентов;
➔ 350+ сотрудников по всему миру;
➔ Активно растем и ищем талантливых
ребят в нашу компанию. Присылайте
ваши CV:
hr-spb@team.wrike.com
4. 4#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
Содержание доклада:
1. Пирамида тестирования
1.1 Количество
1.2 Время прогона
1.3 Покрытие
2. Интеграционное тестирование
2.1. Backend & Frontend integration, Web API
6. 6#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
1. Пирамида тестирования
1.1 Количество автоматических тестов:
➔ UI tests = 1300
➔ Automated Integration tests = 2800
➔ Unit tests = 5300
7. 7#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
1.2 Общее время прогона 45-50 минут:
➔ Automated Integration tests = 10 мин.
➔ UI tests = 30-35 мин.
➔ Unit tests = 10 мин.
1.3 Тестовое покрытие:
➔ Automated Integration tests = 86%
➔ UI tests = 40%
➔ Unit tests = 30%
8. 8#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
2. Интеграционное тестирование
Стэк: Тесты:
➔ Web api
➔ Backend
9. 9#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
2.1. Backend & Frontend integration, Web API
HtmlUnit
WebClient()
Wrike
Request: GET || POST
Response: 200 OK JSON
10. 10#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
3. UI тестирование
Стэк:
11. 11#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
3.1. Selenium webdriver
12. 12#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
3.2. Кроссбраузерность
13. 13#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
3.3. Selenium tests fragility
14. 14#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
Expected Conditions:
➔ .presenceOfElementLocated
➔ .visibilityOfElementLocated
➔ .elementToBeClickable
with FluentWait:
FluentWait wait = new FluentWait<>(driver).withTimeout(10, SECONDS)
.ignoring(ElementNotVisibleException.class)
.ignoring(NoSuchElementException.class)
.ignoring(StaleElementReferenceException.class);
WebElement element = wait.until(condition);
16. 16#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
3.5. Allure reporting
17. 17#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slideWrike
4.1 The art of everyday deployment
Каждый день в 6 утра стартует наш автоматизированный процесс
сборки окружения и прогона деплойных тестов, что включает в себя:
➔ Набор тестов для окружения, собирающих и валидирующих
микросервисы и workspace
➔ 11 билд конфигураций различных тестов
➔ Генерацию репортов для дежурных инженеров, приступающих к
разбору готовых результатов в 8 утра