Similar presentations:
Тестирование. По урок 15. Интеграционное тестирование
1.
Тестирование ПОУРОК 15
Интеграционное тестирование
2. Вопросы по предыдущему уроку
Что такое интеграционное тестирование?
Что такое API ?
WWW
URL, URN, URI
IP
Клиент-серверная архитектура.
HTTP
Структура HTTP запроса
Структура HTTP ответа
Какие методы запросов знаете?
Коды ответа в HTML
3. API (Application Programming Interface)
Application Programming Interface (интерфейс
программирования приложений, программный интерфейс
приложения). API позволяет осуществлять связь и
обмениваться данными между двумя отдельными модулями
программы.
«Общение» между модулями приложения происходит с
использованием стандартных форматов XML и JSON и
посредством специальных протоколов REST (архитектура)
и SOAP.
4. HTTPS
HTTPS (HyperText Transfer Protocol Secure) – расширение
протокола HTTP, поддерживающее шифрование. Данные
передаваемые по протоколу HTTP инкапсулируются в
криптографический протокол SSL или TLS.
Данные передаются по тому же HTTP протоколу, но с
дополнительной надстройкой, обеспечивающей
криптографическую защиту (отсюда и буква s, означающая
secure (security) – безопасность)
5. Версии HTTP
HTTP /0.9HTTP был предложен в марте 1991 года Тимом Бернерсом-Ли,
работавшим тогда в CERN, как механизм доступа к
документам в Интернете и облегчая навигации посредством
использования гипертекста. Самая ранняя версия протокола
HTTP/0.9 была впервые опубликована в январе 1992 года
(хотя реализация датируется 1990 годом). Спецификация
протокола привела к упорядочению правил взаимодействия
между клиентами и серверами HTTP, а так же четкому
разделению функций между этими двумя компонентами. Были
задокументированы основные синтаксические и семантические
положения.
6. Версии HTTP
HTTP /1.0В мае 1996 года для практической реализации HTTP был
выпущен информационный документ RFC 1945, что послужило
основой для реализации большинства компонентов HTTP/1.0.
HTTP/1.1
Современная версия протокола, принята в июне 1999 года.
Новым в этой версии был режим «постоянного соединения»:
TCP – соединение может оставаться открытым после отправки
ответа на запрос, что позволяет посылать несколько запросов
за одно соединение. Клиент теперь обязан посылать
информацию об имени хоста, к которому он обращается, что
сделало возможной более простую организацию виртуального
хостинга.
7. Версии HTTP
HTTP/211 февраля 2015 года опубликованы финальные версии черновика
следующей версии протокола. В отличие от предыдущих версий,
протокол HTTP/2 является бинарным. Среди ключевых особенностей:
мультиплексирование запросов, расстановка приоритетов для
запросов, сжатие заголовков, загрузка нескольких элементов
параллельно посредством одного TCP соединения, поддержка
проактивных push-уведомлений со стороны сервера.
HTTP/3
HTTP/3 – предлагаемый последователь HTTP/2, который уже
используется в веб на основе UDP вместо TCP в качестве
транспортного протокола. Как и HTTP/2 он не объявляет устаревшими
предыдущие основные версии протокола. Поддержка HTTP/3 была
добавлена в Cloudflare и Google Chrome в сентябре 2019 года и может
быть включена в стабильных версиях Chrome и Firefox
8. SOAP
Simple Object Access Protocol – простой протокол для
доступа к объектам. Это название отражало его
первоначальное назначение – обращаться к методам
удаленных объектов.
Сейчас назначение SOAP изменилось, поэтому разные
разработчики предлагали свои варианты расшифровки.
Поэтому в версии 1.2 аббревиатуру решили никак не
расшифровывать.
9. SOAP
SOAP основан на языке XML и расширяет некоторый
протокол прикладного уровня – HTTP, FTP, SMTP и т.д. Как
правило чаще всего используется HTTP.
Вместо использования HTTP для запроса HTML-страницы,
которая будет показана в браузере, SOAP отправляет
посредством HTTP-запроса XML – сообщение и
получает результат в HTTP-отклике
10. Пример
11. XML
XML (от англ. eXtensible Markup Language) – «расширяемый
язык разметки» и очень схож с HTML.
HTML (от англ. HyperText Markup Language) – «язык
гипертекстовой разметки» - стандартизированный язык
разметки веб-страниц во Всемирной паутине.
12. XML
В XML данные хранятся между так называемыми “тэгами”Существуют открывающие и закрывающие тэги, а данные в
свою очередь хранятся между ними;
Например:
● <body> - открывающий тэг
● </body> - закрывающий тэг
Примечательно то, что тэги чувствительны к регистру. Другими
словами, нельзя использовать открывающий тэг <MESSAGE>
и закрывающий тэг </message>. XML воспринимает это как
разные тэги.
XML является более громоздким форматом данных и все
больше разработчиков API от него отказываются.
13. Отличия XML от HTML
HTML – для разметки веб страниц. Например, если нужно создать
веб-сайт с помощью HTML можно указать: «Меню должно быть в
верхнем правом углу. В нем должны быть такие-то кнопки.» Иными
словами, задача HTML – отображение данных.
XML – для хранения и передачи информации в удобном для
человека и компьютера виде. Этот формат не содержит никаких
указаний на то, как эти данные нужно отображать, это зависит от
кода самой программы.
У них есть основное техническое отличие. Тэги HTML являются
заранее заданными («predefined»). Иными словами, для создания
заголовка (например большой надписи в начале страницы) в HTML
используются только тэги <h1></h1> (для заголовков поменьше <h2></h2>, <h3></h3>). Не получится создать заголовки в HTML
используя тэги с другими названиями.
XML не использует заранее заданные тэги, можно давать тэгам
любое название, какое захочешь - <test>, <pairwise>, <soap>.
14. DOM-дерево
DOM – сокращенное название от Document Object Model.● Как же работает JavaScript в браузере? JavaScript обычно
используется как встраиваемый язык для программого
доступа к объектам приложений.
● Браузер подгружает страницу
● Он берет наш html, парсит
● Потом он создает DOM дерево
То есть он просматривает весь наш HTML и создает дерево
елементов, с правильной вложенностью базируясь на HTML,
который он отрендерил до этого. То есть все начинается с
елемента document, потом в него вкладывается елемент html,
куда вкладывается head и body. Дальше он вкладывает
каждый елемент друг в друга в правильной
последовательности.
15. WSDL
WSDL (англ. Web Services Description Language) – язык
описания веб-сервисов и доступа к ним, основанный на
языке XML.
В WSDL документе содержится информация о
местонахождении сервиса и доступных методах (операциях)
для каждого метода определяются параметры,
отправляемого и получаемого сообщения.
XSD – XML Schema Definition может быть встроена внутрь
WSDL документа
16. Пример WSDL
17. Пример XSD
XSD документ, описывающий часть структуры аккаунта на
хабре
18. XSD
XSD XML Schema Definition – это язык описания структуры XML
документа. При использовании XML Schema Definition парсер
может проверить не только правильность синтаксиса XML
документа, но так же его структуру, модель содержания и типы
данных.
Такой подход позволяет объектно-ориентированным языкам
программирования легко создавать объекты в памяти, что,
несомненно, удобнее, чем разбирать XML как обычный текстовый
файл.
Кроме того XSD расширяем, и позволяет подключать уже готовые
словари для описания типовых задач, например веб-сервисов,
таких как SOAP.
Стоит так же упомянуть, что в XSD есть встроенные средства
документирования, что позволяет создавать самодостаточные
документы, не требующие дополнительного описания.
19. Архитектура REST
REST- Representation State Transfer – архитектурный стиль
взаимодействия распределенного приложения в сети,
используется только HTTP. И общение между модулями,
кроме XML и чаще всего происходит через JSON –
текстовый формат обмена данными основанный на
JavaScript.
Это не протокол, как SOAP, а подход, архитектурный стиль к
написанию прикладных интерфейсов.
20. Архитектура REST
Термин REST был введен в 2000 году Роем Филдингом,
одним из авторов HTTP протокола. Системы,
поддерживающие REST, называются RESTful-системами.
В общем случае REST является очень простым
интерфейсом управления информацией без использования
каких-либо дополнительных внутренних прослоек. Каждая
единица информации однозначно определяется
глобальным идентификатором, таким как URL. Каждая URL
в свою очередь имеет строго заданный формат.
21. JSON – JavaScript Object Notation
В JSON существуют типы данных, которые записываются по-разному.Данные в JSON записываются парами “Ключ”:”Значение”. Например:
{“name”:”JamesKirk”}
● Имя параметра – это строка в двойных кавычках слева от двоеточия.
{“name”}
● Значение – может быть строкой в двойных кавычках, числом, логическим
значением (true или false), объектом, массивом, или значением null. Эти
структуры могут быть вложены друг в друга.
{“JamesKirk”}
● Объект – множество пар “Ключ”:”Значение”, заключенные в фигурные
скобки {}. Между именем параметра и значением стоит двоеточие ”:”, а
пары “Ключ”:”Значение” разделяются запятыми ”,”
{
“name”:”JamesKirk”,
“age”:”40”
}
● Строка – упорядоченное множество из нуля или более символов Unicode,
заключенное в двойные кавычки.
● Массив – множество объектов. Массив заключается в квадратные скобки [
] ,а значения отделяются запятыми.
22. Пример JSON
23. RESTFULL
У REST стиля есть свои принципы:● Give every “thing’ an ID
● Link things together
● Use standard methods
● Resources con have multiple representations
● Communicate statelessly
Термин RESTfull всего лишь означает сервис,
реализованный с использованием принципов REST
24. SOAP vs REST
25. Инструменты
API (Application Programming Interface) – интерфейс для связикомпонентов программного обеспечения
● Функциональное тестирование проводится на стороне
пользовательского интерфейса, а тестирование API позволяет
обойти визуальный интерфейс и соединиться напрямую с
приложением или сайтом с помощью отправки запросов сервера.
Работает это следующим образом:
1) Клиент, обращаясь к ресурсу, делает запрос
2) Запрос отправляется на тот сервер, который может выполнить
данный запрос
3) Сервер находит требуемый ресурс и отправляет ответ обратно
клиенту.
● Для непосредственного тестирования API-запросов существует
множество инструментов, например SOAP UI, Postman
26. SOAP UI
SOAP UI – инструмент для тестирования API. Чаще всего
именно данный инструмент рекомендуют для тестирования
API, так как он был разработан для данных целей.
Существуют две вариации данного инструмента:
бесплатная версия с open-source кодом и версия Pro.
Бесплатная версия позволяет вносить модификации в код,
но в версии Pro более дружественный пользовательский
интерфейс и есть дополнительный функционал,
включающий редактор форм и редактор SQL-запросов.
Ссылка https://www.soapui.org/