19
1 #Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slid e Wrike Wrike Tech Club #Wrike Test Automation Process# QA Automation Team 19/05/2016

Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестирование на wrike.com»

Embed Size (px)

Citation preview

Page 1: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

1#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

Wrike Tech Club

#Wrike Test Automation Process#

QA Automation Team 19/05/2016

Page 2: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

2#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

Wrike - это сервис для управления проектами и совместной работы. Мы создаём ведущее приложение, которым пользуются тысячи компаний по всему миру, включая нас самих;

Wrike - это 5 офисов по всему миру, со штаб-квартирой в Mountain View, CA;

Page 3: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

3#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

➔ 10000+ клиентов;➔ 350+ сотрудников по всему миру;➔ Активно растем и ищем талантливых

ребят в нашу компанию. Присылайте ваши CV:

[email protected]

Page 4: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

4#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

Содержание доклада:

1. Пирамида тестирования 1.1 Количество 1.2 Время прогона 1.3 Покрытие2. Интеграционное тестирование 2.1. Backend & Frontend integration, Web API

Page 5: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

5#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3. UI тестирование 3.1. Selenium webdriver 3.2. Кроссбраузерность 3.3. Selenium tests fragility 3.4. Selenium Grid 3.5. Allure reporting4. Automated deployment process

Page 6: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

6#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

1. Пирамида тестирования

1.1 Количество автоматических тестов:

➔ UI tests = 1300

➔ Automated Integration tests = 2800

➔ Unit tests = 5300

Page 7: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

7#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

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%

Page 8: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

8#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

2. Интеграционное тестирование

Стэк: Тесты:➔ Web api ➔ Backend

Page 9: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

9#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

2.1. Backend & Frontend integration, Web API

HtmlUnitWebClient() Wrike

Request: GET || POST

Response: 200 OK JSON

Page 10: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

10#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3. UI тестирование

Стэк:

Page 11: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

11#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3.1. Selenium webdriver

Page 12: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

12#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3.2. Кроссбраузерность

Page 13: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

13#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3.3. Selenium tests fragility

Page 14: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

14#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

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);

Page 15: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

15#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

node

3.4. Selenium Grid

HUB50 Threads

node node… 10 nodes

...5 threads

Page 16: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

16#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

3.5. Allure reporting

Page 17: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

17#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

4.1 The art of everyday deploymentКаждый день в 6 утра стартует наш автоматизированный процесс сборки окружения и прогона деплойных тестов, что включает в себя:➔ Набор тестов для окружения, собирающих и валидирующих

микросервисы и workspace➔ 11 билд конфигураций различных тестов➔ Генерацию репортов для дежурных инженеров, приступающих к

разбору готовых результатов в 8 утра

Page 18: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

18#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

Page 19: Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестирование на wrike.com»

19#Wrike Test Automation Process#, QA Automation Team, 19 May 2016 slide Wrike

Спасибо за внимание !