'

Фреймворк для авто-тестирования веб-сервисов своими силами

Понравилась презентация – покажи это...





Слайд 0

Фреймворк для авто-тестирования веб-сервисов своими силами Воробьев Андрей Test Automation Engineer EPAM, Минск


Слайд 1

О себе Воробьев Андрей Test Automation Engineer EPAM Systems Автор и ведущий тренингов для начинающих по авто-тестированию веб-сервисов andrei_varabyeu@epam.com


Слайд 2

Профессиональный жаргон


Слайд 3

Авто-тестирование веб-сервиса Запрос Ответ Ответ правильный? Да Тест пройден БАГ


Слайд 4

Авто-тестирование веб-сервиса Покупать продукт или разрабатывать самим?


Слайд 5

Как решить? Для того, чтобы принять верное решение, достаточно ответить только на один вопрос: “Насколько тривиальные задачи требуется решить”


Слайд 6

Сложно или просто?


Слайд 7

Сложно или просто? Просто: Простые входные данные(числа, строки) Примитивные типы валидаций (=, >, <, contains) Простые выборки в базу. Малый объем выборок Сложно: Сложные входные данные (части запросов, которые нужно группировать друг с другом) Сложная валидация (по шаблону, по данным которые тоже нужно откуда-нибудь получить ) Поддержка транзакций БД, кэширования


Слайд 8

Сложно или просто?


Слайд 9

Сложно или просто?


Слайд 10

Сложно или просто? <person name=‘Андрей Воробьев’> <relative>Лина Воробьева</relative> <relative>Сергей Воробьев</relative> </person>


Слайд 11

Сложно или просто? <person name=‘Андрей Воробьев’> <relative name=“Лина Воробьева“> <relative>Валентина Криводубская</relative> <relative>Дмитрий Криводубский</relative> </relative > <relative name=“Сергей Воробьев“> <relative>Ядвига Воробьева</relative> <relative>Николай Воробьев</relative> </relative > </person>


Слайд 12

Сложно или просто? <person name=‘Андрей Воробьев’> <relative name=“Лина Воробьева“> <relative name=“Валентина Криводубская“> <relative>Анна Криводубская</relative> <relative>Петр Криводубский</relative> </relative> <relative name=“Владимир Криводубский“> <relative>…</relative> <relative>…</relative> </relative> </relative> <relative name=“Сергей Воробьев“> <relative name=“Ядвига Воробьева“> <relative>…</relative> <relative>…</relative> </relative> <relative name=“Николай Воробьева“> <relative>…</relative> <relative>…</relative> </relative> </relative > </person> N == ?


Слайд 13

Просто 14 SOAP, Rest, HTTP, JMS, DB XPath Assertions XQuery Assertions Logging Scripting Support (Groovy, JavaScript) WS Security …. and more


Слайд 14

Сложно 15 Java/C#/… WS implementation *Unit testing Frameworks


Слайд 15

«Сделай сам» 16 Клиент веб-сервиса (для отправки запросов и получения ответов от сервера) Реализация работы с БД, другими источниками входных/выходных данных Набор валидаций, которые нужны ВАМ (XPath, XQuery, DB, равно, содержит, больше\меньше, соответствует заданному формату) Фреймворк для тестирования Веб Сервиса – это всего лишь:


Слайд 16

Task list ? 17


Слайд 17

Подготовка запроса 18 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <familyTree> <name>Андрей Воробьев</name> </ familyTree > </soapenv:Body> </soapenv:Envelope>


Слайд 18

Подготовка запроса 19 soapUI Java Property files Data Source (excel) DB via ‘Property Transfer’ использование groovy Java-based framework Java Property files DB (+ORM, cashing, transactions) ЛЮБЫЕ другие источники данных (Windows Active Directory, http, ftp, etc)


Слайд 19

Отправка запроса/Получение ответа 20 soapUI ВСЕ уже сделано за вас Java-based framework JAX-WS Spring-WS … ЛЮБЫЕ другие источники имплементации, которые удобно использовать ВАМ


Слайд 20

Валидация ответа 21 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <person name=‘Андрей Воробьев’> <relative>Лина Воробьева</relative> <relative>Сергей Воробьев</relative> </person> </soapenv:Body> </soapenv:Envelope>


Слайд 21

soapUI – это тоже Java код 22


Слайд 22

Архитектура 23 или то, над чем стоит поломать голову…


Слайд 23

Архитектура. Основные принципы 24 Каждый из компонентов не зависит от другого Модульность


Слайд 24

Архитектура. Основные принципы 25 Легко добавлять: новый функционал новые типы валидаций Расширяемость


Слайд 25

Архитектура. Основные принципы 26 Достаточно посмотреть на исходный код теста, чтобы понять что он делает Читаемость


Слайд 26

Архитектура. Компоненты 27


Слайд 27

Архитектура. Диаграмма последовательности 28


Слайд 28

29 Компоненты. Тест TestNG базовые типы валидации группировка в сьюты отчеты о прохождении тестов возможность выполнять тесты в несколько потоков зависимости между тестами


Слайд 29

Компоненты 30


Слайд 30

31 Компоненты. Процессор шаблонов Данные Шаблон Готовый запрос


Слайд 31

32 Компоненты. Процессор шаблонов Шаблон <request> <amount>${amountValue}</amount> <currency>${currencyValue}</currency> </request>


Слайд 32

33 Компоненты. Процессор шаблонов Данные amountValue = 100 currencyValue = USD


Слайд 33

34 Компоненты. Процессор шаблонов Готовый запрос <request> <amount>100</amount> <currency>USD</currency> </request>


Слайд 34

Компоненты 35


Слайд 35

36 Компоненты. XML - модель Мы используем…


Слайд 36

37 Компоненты. SOAP-клиент исходный код может быть сгенерирован автоматически по WSDL-схеме исходный код нужно писать самому


Слайд 37

Компоненты 38


Слайд 38

39 Компоненты. Валидация


Слайд 39

40 Компоненты. Валидация. Ответ


Слайд 40

Почему это так важно 41 Новые тесты создаются быстро


Слайд 41

Почему это так важно 42 Старые тесты поддерживать просто 2 x 2


Слайд 42

soapUI Pro умеет… 43 измерять степень покрытия тестами тестирование безопасности (SQL-инъекции, XPath-инъекции) производить нагрузочное тестирование интегрироваться в сборку сервиса и CI-цикл создавать Mock-сервисы


Слайд 43

soapUI vs. разработка 44 не нужно никаких подготовительных работ новые тесты создаются медленно старые тесты поддерживаются медленно квалификация авто-тестировщика ниже среднего базовый набор функционала* * расширяется только groovy-скриптингом


Слайд 44

soapUI vs. разработка 45 перед написанием тестов необходимо разработать механизмы отправки, получения и валидации новые тесты создаются быстро старые тесты поддерживать просто квалификация авто-тестировщика выше среднего


Слайд 45

soapUI vs. разработка 46


Слайд 46

soapUI vs. разработка 47 Любые протоколы Любые источники входных и выходных данных (Active Directory, POP3, SMTP) Простота валидации сложных типов данных (даты, UUID)


Слайд 47

Наш опыт 48 На разработку Фреймворка и первого теста путем проб и ошибок ушло около 2 человеко-месяцев


Слайд 48

Наш опыт 49 Сейчас, имея опыт, Это можно сделать за 2 человеко-недели


Слайд 49

50 Ваши вопросы!


Слайд 50

Спасибо за внимание! Воробьев Андрей Test Automation Engineer EPAM, Минск


Слайд 51

Валидация ответа 52 soapUI Fault/Success Contains XPath Xquery Schema Compilance Timeout WS-Security Status Groovy … Java-based framework JUnit TestNG XmlUnit HtmlUnit DbUnit …*Unit


Слайд 52

53 Компоненты. Процессор шаблонов


Слайд 53

54 Компоненты. XML – модель. JAXB


×

HTML:





Ссылка: