REST, GraphQL, Web Sockets, gRPC
RESTful, SOAP, GraphQL, SyncAPI, FTP
WebSocket
WebSocket: протокол, що забезпечує двосторонній зв'язок в реальному часі між клієнтом та сервером через одне підключення. Web месенжери можуть використовувати WebSocket для таких функцій, як чат або нотифікації, що з'являються в реальному часі.
На відміну від HTTP, WebSocket починається з ws:// або wss://. Це протокол зі збереженням стану, що означає, що з'єднання між клієнтом та сервером буде залишатися активним до тих пір, поки його не буде завершено однією зі сторін (клієнтом або сервером).


на бронетранспортери
М113



на бронетранспортери
М113
Tools:
Що тестуємо?
🎃 Status codes
🎃 Methods
🎃 Request and response
🎃 Response timings
🎃 Performance
🎃 Security
🎃 Business logic
Найбільш поширеною проблемою при тестуванні технології WebSocket є невідповідність між веб-браузерами.
Корисно знати:
🍓 Best practices for Real-time Application
🍓 Postman UI





RESTful API
RESTful API (Representational State Transfer API) - це тип архітектури програмного забезпечення для взаємодії між комп'ютерними системами через мережу. Термін "RESTful" походить від фрази "Representational State Transfer", яка вказує на спосіб обміну та управління станом ресурсів.
Representational State Transfer (REST) - це архітектура програмного забезпечення, яка встановлює умови щодо того, як має працювати API.
🤖 Клієнт надсилає запит на сервер. Клієнт дотримується документації API для форматування запиту таким чином, щоб його зрозумів сервер.
🪓 Сервер аутентифікує клієнта і підтверджує, що у клієнта є право робити цей запит.
🔧 Сервер отримує запит і обробляє його внутрішньо.
💌 Сервер повертає відповідь клієнту. Відповідь містить інформацію, яка повідомляє клієнту, чи був запит успішним. Відповідь також включає будь-яку інформацію, яку клієнт запитав.

на бронетранспортери
М113

Принципи:
🤖👽Наявність клієнта і сервера.
😶🌫️ Принцип stateless.
👥 Єдині інтерфейси (Uniform interface) для ресурсів.
👨👧👦 Layered-архітектура.
👜 Можливості кешування відповіді сервера.

на бронетранспортери
М113
Tools:
Що тестуємо?
Документація:
👉 чи документація для API актуальна та повна. Вона повинна надавати вичерпну інформацію про доступні ресурси, методи, параметри та приклади використання.
👉 чи відповідають схемі GraphQL дані, які повертає сервер
Методи HTTP:
👉 чи правильно використовуються методи HTTP (GET, POST, PUT, DELETE) відповідно до RESTful принципів
Обробка Помилок (Error Handling):
👉 як API повертає помилки. Впевніться, що відповіді про помилки містять коректні HTTP статус-коди та інформацію про помилку.
Коректність Запитів:
👉 валідацію параметрів, обробку некоректних URL, обробку неправильного формату даних тощо
👉 тестуємо різні комбінації параметрів та змінних в запитах. Як API обробляє фільтрацію, сортування та пагінацію.
👉 перевіряємо чи механізми аутентифікації та авторизації працюють належним чином. Тестуйте сценарії, коли користувачі мають чи не мають прав для виконання певних операцій.
Корисно знати:
🍓 HTTP(s)
🍓 JSON, XML
🍓 Postman UI



це комунікаційний протокол, який забезпечує двосторонній обмін даними через одне, тривале TCP-з'єднання*. На відміну від HTTP, який працює за моделлю "запит-відповідь", WebSocket дозволяє постійний двосторонній обмін повідомленнями між клієнтом (наприклад, веб-браузером) та сервером.
Основні характеристики WebSocket:
🤖 Двостороннє спілкування: клієнт і сервер можуть незалежно спілкуватися, без необхідності постійно встановлювати нові з'єднання.
🤖 Менше навантаження: менші витрати порівняно з традиційними HTTP-запитами.
🤖 Використання для реального часу: ідеально підходить для додатків, які потребують швидкого та постійного обміну даними.
* TCP-з'єднання — це комунікаційний механізм в мережах, що базується на протоколі передачі даних TCP (Transmission Control Protocol).
HTTP базується на TCP. Коли ви відкриваєте вебсайт, HTTP використовує TCP для передачі даних між вашим комп'ютером (клієнтом) і сервером.
Основні моменти:
-
Встановлення з'єднання: HTTP використовує TCP для надійного встановлення з'єднання. Клієнт і сервер створюють TCP-з'єднання перед тим, як почати обмін даними.
-
Передача даних: HTTP передає веб-сторінки, зображення, відео та інші ресурси через TCP. TCP гарантує, що всі ці дані прийдуть без помилок і в правильному порядку.
-
Закриття з'єднання: після того, як всі дані передані, TCP закриває з'єднання.
Отже, TCP забезпечує стабільність і надійність, тоді як HTTP визначає правила для обміну інформацією, наприклад, що саме передається та як це виглядає.


Iryna Volnykh
+ 10 years in E-commerce
+ 8 years as a QA engineer
ISTQB Certified Tester
Automation/Manual QA engineer
QA lead & exScrum master at Vaimo
Teacher at Beetroot Academy

Ми — Тил A3ОВУ
Наша частина збору – 30 000 грн
Мета команди - 1 000 000 грн
Спільними зусиллями ми закриємо збір на 77 млн грн і придбаємо 5 бронетранспортерів.


RESTful API
RESTful API (Representational State Transfer API) - це тип архітектури програмного забезпечення для взаємодії між комп'ютерними системами через мережу. Термін "RESTful" походить від фрази "Representational State Transfer", яка вказує на спосіб обміну та управління станом ресурсів.
Representational State Transfer (REST) - це архітектура програмного забезпечення, яка встановлює умови щодо того, як має працювати API.
🤖 Клієнт надсилає запит на сервер. Клієнт дотримується документації API для форматування запиту таким чином, щоб його зрозумів сервер.
🪓 Сервер аутентифікує клієнта і підтверджує, що у клієнта є право робити цей запит.
🔧 Сервер отримує запит і обробляє його внутрішньо.
💌 Сервер повертає відповідь клієнту. Відповідь містить інформацію, яка повідомляє клієнту, чи був запит успішним. Відповідь також включає будь-яку інформацію, яку клієнт запитав.

на бронетранспортери
М113

Принципи:
🤖👽Наявність клієнта і сервера.
😶🌫️ Принцип stateless.
👥 Єдині інтерфейси (Uniform interface) для ресурсів.
👨👧👦 Layered-архітектура.
👜 Можливості кешування відповіді сервера.
SOAP
SOAP (Simple Object Access Protocol) — протокол обміну структурованими повідомленнями в розподілених обчислювальних системах, базується на форматі XML.
Тестування SOAP принципово нічим не відрізняється від роботи з іншими API але для його проведення необхідна підготовка та спеціальні інструменти для тестування.

на бронетранспортери
М113
SOAP-повідомлення(request) – це звичайний XML-документ, що містить такі елементи:
-
Конверт (Envelope) – визначає початок та кінець повідомлення. Це обов'язковий елемент.
-
Заголовок(Headers) – містить будь-які необов'язкові атрибути, що використовуються при обробці повідомлення, або в проміжній точці, або в кінцевій точці. Це необов'язковий елемент.
-
Тіло(Body) – містить дані XML, що містять повідомлення, що надсилається. Це обов'язковий елемент.
Несправність(Faultcode) – необов'язковий елемент несправності, який надає інформацію про помилки, що виникають під час обробки повідомлення.


SOAP request
SOAP response

на бронетранспортери
М113
Tools:
Що тестуємо?
В додаток до RESTFUL API
XSD:
👉 Перевірте, чи дані, які передаються через SOAP, відповідають схемам даних (XSD), визначеним у WSDL. Враховуйте коректність обробки обов'язкових та необов'язкових елементів.
Коректність Запитів:
👉 чи SOAP-запити та відповіді відповідають стандартам XML та правильність структури XML-документів
Корисно знати:
🍓 SOAP messages
🍓 XML
🍓 SOAP UI



GraphQL
GraphQL
GraphQL - це мова запитів для API, яка дозволяє отримувати та надсилати тільки ту інформацію, яка вам потрібна.
GraphQL є абстракцією над різними протоколами передачі даних, такими як HTTP, WebSocket та іншими. GraphQL може використовувати будь-який протокол, який дозволяє взаємодіяти з сервером.
Найчастіше GraphQL використовується з HTTP. Клієнти формують запити у вигляді HTTP POST запитів на специфічний URL, де цей URL вказує на GraphQL-схему на сервері. Запит містить GraphQL запит у тілі запиту.
{
hero {
name
height
mass
}
}
{
"hero": {
"name": "Luke Skywalker",
"height": 1.72,
"mass": 77
}
}

на бронетранспортери
М113
GraphQL - це мова запитів для API, яка дозволяє отримувати та надсилати тільки ту інформацію, яка вам потрібна.
GraphQL є абстракцією над різними протоколами передачі даних, такими як HTTP, WebSocket та іншими. GraphQL може використовувати будь-який протокол, який дозволяє взаємодіяти з сервером.
Найчастіше GraphQL використовується з HTTP. Клієнти формують запити у вигляді HTTP POST запитів на специфічний URL, де цей URL вказує на GraphQL-схему на сервері. Запит містить GraphQL запит у тілі запиту.
{
hero {
name
height
mass
}
}
{
"hero": {
"name": "Luke Skywalker",
"height": 1.72,
"mass": 77
}
}

на бронетранспортери
М113


на бронетранспортери
М113

Tools:
Що тестуємо?
Коректність даних(Data Accuracy):
👉 чи відповідають результати виконання GraphQL-запитів очікуваним значенням.
👉 чи відповідають схемі GraphQL дані, які повертає сервер
Mutation Subscription Testing:
👉 мутації (запити, які модифікують дані на сервері) та як вони впливають на стан системи
👉 якщо API підтримує підписки (subscriptions) для реального часу, переконайтеся, що вони працюють коректно.
Кешування:
👉 перевірка як GraphQL взаємодіє з системою кешування та перевірте, чи відповідає кеш очікуванням
Корисно знати:
🍓 GraphQL documentation
🍓 GraphQL schema
🍓 Queries and Mutations
🍓 Postman UI


на бронетранспортери
М113



Tools:
Що тестуємо?
Коректність даних(Data Accuracy):
👉 чи відповідають результати виконання GraphQL-запитів очікуваним значенням.
👉 чи відповідають схемі GraphQL дані, які повертає сервер
Mutation Subscription Testing:
👉 мутації (запити, які модифікують дані на сервері) та як вони впливають на стан системи
👉 якщо API підтримує підписки (subscriptions) для реального часу, переконайтеся, що вони працюють коректно.
Кешування:
👉 перевірка як GraphQL взаємодіє з системою кешування та перевірте, чи відповідає кеш очікуванням
Корисно знати:
🍓 GraphQL documentation
🍓 GraphQL schema
🍓 Queries and Mutations
🍓 Postman UI


на бронетранспортери
М113



SyncAPI
Sync REST API дозволяє вам тримати локальну копію даних актуальною за допомогою оновлень дельти або вмісту, який був змінений.
Delta update (оновлення дельти) — це процес оновлення програмного забезпечення чи даних шляхом вибіркового завантаження тільки тих елементів, які зазнали змін, замість повного завантаження всього вмісту.
Без API Sync API додатки потребують постійного Інтернет-з'єднання та постійно завантажують усі дані під час кожної синхронізації, включаючи вміст, який вони вже знають.
Використовуючи Sync API, додатки синхронізуються періодично, наприклад, кожні кілька годин/хвилин при відкритті або очікуванні взаємодії користувача. Для цього виконуються оновлення дельти:
👉 Отримати вміст, який був доданий або змінений після останньої синхронізації.
👉 Видалити дані збережені локально, які був видалений після останньої синхронізації.

на бронетранспортери
М113
WebSocket
WebSocket: протокол, що забезпечує двосторонній зв'язок в реальному часі між клієнтом та сервером через одне підключення. Web месенжери можуть використовувати WebSocket для таких функцій, як чат або нотифікації, що з'являються в реальному часі.
На відміну від HTTP, WebSocket починається з ws:// або wss://. Це протокол зі збереженням стану, що означає, що з'єднання між клієнтом та сервером буде залишатися активним до тих пір, поки його не буде завершено однією зі сторін (клієнтом або сервером).


на бронетранспортери
М113




на бронетранспортери
М113


на бронетранспортери
М113

на бронетранспортери
М113
Tools:
Що тестуємо?
🎃 Status codes
🎃 Methods
🎃 Request and response
🎃 Response timings
🎃 Performance
🎃 Security
🎃 Business logic
Найбільш поширеною проблемою при тестуванні технології WebSocket є невідповідність між веб-браузерами.
Корисно знати:
🍓 Best practices for Real-time Application
🍓 Postman UI





[s]FTP
(S)FTP - File Transfer Protocol для завантаження та вивантаження файлів між клієнтом та сервером.
FTP API використовується для виконання дій, таких як DOWNLOAD, UPLOAD, DELETE та TRANSFER на FTP /SFTP-сервері за допомогою REST API.
API зазвичай дозволяє програмно контролювати практично всі аспекти роботи FTP / SFTP-сервера, від завантаження та вивантаження файлів до передачі та видалення на основі операцій GET, POST та DELETE.


на бронетранспортери
М113

manager

на бронетранспортери
М113
Tools:

Що тестуємо?
Безпека:
👉 аутентифікація користувача
👉 SSH-ключі для SFTP
Операції передачі файлів:
👉 upload/download файлів різних типів та розмірів
👉 тестування обриву з'єднання: як система реагує на втрату з'єднання під час передачі файлів.
Керування директоріями та файлами/доступ:
👉 створення, переіменування та видалення директорій та файлів.
👉 користувач може отримати список файлів у віддаленій директорії
👉 правильність назначення та зміни прав доступу до файлів та директорій - що система правильно обробляє обмеження доступу
Інтеграція
👉 Тестування сумісності з різними FTP-клієнтами та серверами.
👉 Перевірка інтеграції FTP з іншими системами або сервісами.
Корисно знати:
- data flow
- validation

на бронетранспортери
М113
Для входу на FTP / SFTP-сервер вам зазвичай знадобляться наступні дані:
-
Ім'я користувача (Username): Ім'я облікового запису на сервері, яке ідентифікує конкретного користувача.
-
Пароль (Password): Пароль, який відповідає обліковому запису користувача і дозволяє вам отримати доступ до серверу.
-
Порт (Port): Номер порту, який використовується для з'єднання з сервером. Для FTP це зазвичай порт 21, а для SFTP зазвичай використовують порт 22, але ці значення можуть бути налаштовані на сервері.
-
Хост URL (Host URL): Адреса сервера, за якою ви будете з'єднуватися. Це може бути IP-адреса або доменне ім'я сервера.
Наприклад, якщо ви маєте ім'я користувача "user123", пароль "password123", сервер має IP-адресу "ftp.example.com" і використовує порт 21 для FTP або порт 22 для SFTP, то ваші дані для входу будуть виглядати приблизно такі:
- Ім'я користувача: user123
- Пароль: password123
- Порт: 21 (для FTP) або 22 (для SFTP)
- Хост URL: ftp.example.com (або IP-адреса сервера)


на бронетранспортери
М113


API: RESTful, SOAP, GraphQL, та SyncAPI - в чому різниця та що треба знати щоб їх тестувати.
By iravol
API: RESTful, SOAP, GraphQL, та SyncAPI - в чому різниця та що треба знати щоб їх тестувати.
- 59