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

Содержание

Слайд 2

О себе

Воробьев Андрей
Test Automation Engineer EPAM Systems
Автор и ведущий тренингов для

О себе Воробьев Андрей Test Automation Engineer EPAM Systems Автор и ведущий
начинающих по авто-тестированию веб-сервисов
[email protected]

Слайд 3

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

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

Слайд 4

Авто-тестирование веб-сервиса

Запрос

Ответ

Ответ
правильный?

Да

Тест
пройден

БАГ

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

Слайд 5

Авто-тестирование веб-сервиса

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

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

Слайд 6

Как решить?

Для того, чтобы принять верное решение, достаточно ответить только на один

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

Слайд 7

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

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

Слайд 8

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

Просто:
Простые входные данные(числа, строки)
Примитивные типы валидаций (=, >, <,

Сложно или просто? Просто: Простые входные данные(числа, строки) Примитивные типы валидаций (=,
contains)
Простые выборки в базу. Малый объем выборок

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

Слайд 9

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

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

Слайд 10

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

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

Слайд 11

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


Лина Воробьева
Сергей Воробьев

Сложно или просто? Лина Воробьева Сергей Воробьев

Слайд 12

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



Валентина Криводубская
Дмитрий Криводубский


Ядвига

Сложно или просто? Валентина Криводубская Дмитрий Криводубский Ядвига Воробьева Николай Воробьев
Воробьева
Николай Воробьев


Слайд 13

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




Анна Криводубская
Петр Криводубский

Сложно или просто? Анна Криводубская Петр Криводубский … … … … … … N == ?
Криводубский“>















N == ?

Слайд 14

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

Просто SOAP, Rest, HTTP, JMS, DB XPath Assertions XQuery Assertions Logging Scripting
more

Слайд 15

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

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

Слайд 16

«Сделай сам»
Клиент веб-сервиса (для отправки запросов и получения ответов от сервера)
Реализация работы

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

Фреймворк для тестирования
Веб Сервиса – это всего лишь:

Слайд 17

Task list ☺

Task list ☺

Слайд 18

Подготовка запроса




Андрей Воробьев



Подготовка запроса Андрей Воробьев

Слайд 19

Подготовка запроса

soapUI
Java Property files
Data Source (excel)
DB via ‘Property Transfer’
использование groovy

Java-based framework
Java

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

Слайд 20

Отправка запроса/Получение ответа

soapUI
ВСЕ уже сделано за вас

Java-based framework
JAX-WS
Spring-WS

ЛЮБЫЕ другие источники имплементации,

Отправка запроса/Получение ответа soapUI ВСЕ уже сделано за вас Java-based framework JAX-WS
которые удобно использовать ВАМ

Слайд 21

Валидация ответа




Лина Воробьева
Сергей Воробьев



Валидация ответа Лина Воробьева Сергей Воробьев

Слайд 22

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

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

Слайд 23

Архитектура

или то, над чем стоит поломать голову…

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

Слайд 24

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

Модульность

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

Слайд 25

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

Расширяемость

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

Слайд 26

Архитектура. Основные принципы

Достаточно посмотреть
на исходный код теста,
чтобы понять что он

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

Читаемость

Слайд 27

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

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

Слайд 28

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

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

Слайд 29

Компоненты. Тест

TestNG

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

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

Слайд 30

Компоненты

Компоненты

Слайд 31

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

Данные

Шаблон

Готовый
запрос

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

Слайд 32

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

Шаблон


${amountValue}
${currencyValue}

Компоненты. Процессор шаблонов Шаблон ${amountValue} ${currencyValue}

Слайд 33

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

Данные

amountValue = 100
currencyValue = USD

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

Слайд 34

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

Готовый
запрос


100
USD

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

Слайд 35

Компоненты

Компоненты

Слайд 36

Компоненты. XML - модель

Мы используем…

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

Слайд 37

Компоненты. SOAP-клиент

исходный код может быть сгенерирован автоматически по WSDL-схеме

исходный код нужно писать

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

Слайд 38

Компоненты

Компоненты

Слайд 39

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

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

Слайд 40

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

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

Слайд 41

Почему это так важно

Новые тесты
создаются
быстро

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

Слайд 42

Почему это так важно

Старые тесты
поддерживать
просто

2 x 2

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

Слайд 43

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

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

Слайд 44

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

не нужно никаких подготовительных работ
новые тесты создаются медленно
старые тесты поддерживаются

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

Слайд 45

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

перед написанием тестов необходимо разработать механизмы отправки, получения и валидации
новые

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

Слайд 46

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

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

Слайд 47

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

Любые протоколы
Любые источники входных и выходных данных (Active Directory, POP3,

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

Слайд 48

Наш опыт

На разработку
Фреймворка и первого
теста путем
проб и ошибок
ушло около

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

2 человеко-месяцев

Слайд 49

Наш опыт

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

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

Слайд 50

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

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

Слайд 51

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

Воробьев Андрей
Test Automation Engineer
EPAM, Минск

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

Слайд 52

Валидация ответа

soapUI
Fault/Success
Contains
XPath
Xquery
Schema Compilance
Timeout
WS-Security Status
Groovy

Java-based framework
JUnit
TestNG
XmlUnit
HtmlUnit
DbUnit
…*Unit

Валидация ответа soapUI Fault/Success Contains XPath Xquery Schema Compilance Timeout WS-Security Status

Слайд 53

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

Компоненты. Процессор шаблонов
Имя файла: Фреймворк-для-авто-тестирования-веб-сервисов-своими-силами.pptx
Количество просмотров: 125
Количество скачиваний: 0