API testing: intro 1

1 заняття:


1. Про курс

2. Поставлені задачі

3. API та Клієнт серверна архітектура

4. Налаштовуємо Postman

5. Створюємо перший запит

Iryna Volnykh

+ 10 years in E-commerce
+ 9 years as a QA engineer

 

ISTQB Certified Tester

Manual/Automation QA engineer

QA lead & exScrum master at Vaimo

Teacher at RY Consulting

Що чекати:

16 занять:

2 заняття (запис) на тиждень ВТ та ПТ

публікуються о 18:00

слухаємо в зручний час 

домашнє завдання до кожного уроку

 

 

Основи основ

  1. Що таке API? Клієнт-серверна архітектура. Статус коди HTTP request.
  2. Особливості REST та SOAP: XML, JSON та інші типи передачі даних. Типи даних.
  3. Застосування Swagger та OpenAPI.
  4. Огляд API через браузер. Техніки дизайну тестів для API.

Postman та тестування

Авторизація та аутентифікація.
Колекції, Середовища.Робочі простори.
Змінні та область дії змінних.
Аналіз response body. Як тестувати?
Використання сніппетів у тестах. Написання тестів. AI

Обробка помилок. Mock servers.
Створення JSON схеми. Моніторинг.
Автоматизований запуск тестів. TestRunner. Огляд CI/CD.
Аналіз тестових даних та визначення тестів для регресії.

GraphQL: створення та тестування запитів.

Postman flow, Request examples

SoapUI: Створюємо тестовий тест сьют та тест кейси.

Висновки: Моделювання тестової стратегії, підходів та оцінка задач

WebSockets та  gRPC

Очікую від вас в кінці

  • Повне розуміння що таке API, HTTP requests та як тестувати
  • Повну колекцію тестів та документацію до неї 
  • 0 відкритих питань

Test design techniques

  • Boundary values (2 values and 3 values)
  • Equivalence partitioning
  • State transition
  • Decision table
  • Use case testing 
  • Model based testing

Пов'язані теми:

  • API first
  • Принцип раннього тестування
  • Інтеграційне тестування

Postman v11

Basic:

  • платний Postbot: 50 monthly Postbot activities 
  • платний Runner: 25 run monthly

Client - Server architecture

API 

Клієнт-серверна архітектура є однією з основних парадигм розподіленої обчислювальної системи. У цій моделі "клієнт" відповідає за інтерфейс користувача та взаємодію, тоді як "сервер" зберігає дані, управляє ресурсами, обробляє запити тощо. Для взаємодії між клієнтами та серверами використовуються різні протоколи. 

  • HTTP (Hyper Text Transfer Protocol) — Основний протокол для веб-комунікації. Використовується для передачі веб-сторінок (HTML, CSS, JS) та інших даних між веб-браузером і веб-сервером.
  • HTTPS (HTTP Secure): Основний протокол для веб-трафіку. Це зашифрована версія HTTP, яка використовує SSL/TLS для захисту даних, що передаються між клієнтом та сервером.

CLIENT

SERVER

HTTP REQUEST

HTTP RESPONSE

REQUEST LINE

Method        URL        HTTP v

HEADERS

empty line

BODY

(опційно)

POST /wow-server/greetings HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text; charset=utf-8
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

hi server!

STATUS LINE

HEADERS

empty line

BODY

(опційно)

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2023 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed


<html>
<body>
<h1>Hello, Dear!</h1>
</body>
</html>

API

Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Це набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) для використання в зовнішніх програмних продуктах.

API визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

У контексті клієнт-серверних протоколів API посилається на інтерфейси, функції, повідомлення та інші механізми, які протокол визначає для комунікації та взаємодії між клієнтами та серверами.

Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Це набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) для використання в зовнішніх програмних продуктах.

API визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

C

 

reate

import requests

url = "https://example.com/api/users"
data = {
    "name": "John",
    "email": "john@example.com"
}

response = requests.post(url, json=data)

if response.status_code == 201:  # HTTP 201 means "Created"
    print("User successfully created!")
else:
    print("Failed to create user. Status Code:", response.status_code)

print(response.json())  # Assuming the API returns a JSON response

Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Це набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) для використання в зовнішніх програмних продуктах.

API визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

C

 

reate

import requests

url = "https://example.com/api/users/1"  # Assuming "1" is the user's ID you want to fetch

response = requests.get(url)

if response.status_code == 200:  # HTTP 200 means "OK"
    user_data = response.json()
    print("User data retrieved successfully!")
    print("Name:", user_data['name'])
    print("Email:", user_data['email'])
else:
    print("Failed to retrieve user. Status Code:", response.status_code)

ead

R

 

Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Це набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) для використання в зовнішніх програмних продуктах.

API визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

C

 

reate

import requests

url = "https://example.com/api/users/1"  # Assuming "1" is the user's ID you want to update

data = {
    "name": "John Updated",
    "email": "john.updated@example.com"
}

response = requests.put(url, json=data)

if response.status_code == 200:  # HTTP 200 can mean "OK" for updates
    updated_data = response.json()
    print("User data updated successfully!")
    print("Updated Name:", updated_data['name'])
    print("Updated Email:", updated_data['email'])
else:
    print("Failed to update user. Status Code:", response.status_code)

ead

R

pdate

U

Набір визначень підпрограм, протоколів взаємодії та засобів для створення програмного забезпечення. Це набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) для використання в зовнішніх програмних продуктах.

API визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

C

 

reate

import requests

url = "https://example.com/api/users/1"  

response = requests.delete(url)

if response.status_code == 204:  
    print("User deleted successfully!")
else:
    print("Failed to delete user. Status Code:", response.status_code)

ead

R

pdate

D

elete

U

API - link

FTP - File Transfer Protocol для завантаження та вивантаження файлів між клієнтом та сервером. Використовує окремі керуючі для з'єднання. 

SMTP - Simple Mail Transfer Protocol використовується для передачі електронної пошти. Визначає форматування пошти, маршрутизацію та передачу між серверами.

POP3 (Post Office Protocol version 3): Цей протокол дозволяє електронній поштовій програмі завантажувати електронні листи з сервера на локальний комп'ютер. Після завантаження листів з сервера, вони, як правило, видаляються з сервера, тому їх не можна більше прочитати з іншого пристрою.

IMAP (Internet Message Access Protocol): Цей протокол також дозволяє електронній поштовій програмі отримувати листи з сервера, але, на відміну від POP3, листи залишаються на сервері. Це дозволяє користувачам читати свої листи з різних пристроїв, оскільки листи не видаляються із сервера після першого прочитання. У типовій налаштованій системі електронної пошти користувач відправляє листи за допомогою SMTP і отримує листи за допомогою POP3 або IMAP. Тобто SMTP зазвичай відповідає за вихідну пошту, а POP3 та IMAP – за вхідну.

LDAP - Протокол легкого доступу до довідника та забезпечує доступ до розподілених довідкових служб, таких як корпоративні бази даних співробітників.
SSH - Протокол безпечної оболонки дозволяє адміністративні віддалені входи та інші служби через безпечний канал. Шифрує трафік та забезпечує ключову аутентифікацію.
WebSockets - Двосторонній протокол комунікації, який забезпечує канали повного дуплексу через одне TCP-з'єднання. Дозволяє передачу даних в реальному часі між клієнтом та сервером.

WebSocket: Протокол, що забезпечує двосторонній зв'язок в реальному часі між клієнтом та сервером через одне підключення. Web месенжери можуть використовувати WebSocket для таких функцій, як чат або нотифікації, що з'являються в реальному часі.

HTTPs та TCP/IP

 

 

HTTP і TCP/IP тісно пов'язані, оскільки HTTP використовує TCP/IP для передачі даних через Інтернет.

 

Як це працює:

 

 

 

 

 

 

 

 

 

 

 

 

 


 

TCP/IP (Transmission Control Protocol/Internet Protocol):

TCP/IP — це набір протоколів, який забезпечує транспортування даних від одного комп'ютера до іншого через мережу. TCP/IP працює на більш низькому рівні, ніж HTTP, і відповідає за доставку даних.



HTTP (HyperText Transfer Protocol):

HTTP — це протокол прикладного рівня, який визначає, як клієнт (наприклад, веб-браузер) і сервер обмінюються даними. HTTP використовується для запитів веб-сторінок, відправки форм, завантаження файлів тощо.

 

Як це працює:

HTTP запити і відповіді:

👉  Коли користувач вводить URL-адресу у браузері або натискає на посилання, браузер формує HTTP-запит, який може бути GET-запитом для отримання веб-сторінки або POST-запитом для відправки даних форми на сервер.


🤝 TCP з'єднання: щоб передати цей HTTP-запит на сервер, браузер використовує TCP, який встановлює надійне з'єднання з сервером. Це з'єднання гарантує, що всі дані будуть передані без помилок і в правильному порядку.

 

🦶IP маршрутизація: далі IP відповідає за доставку TCP-пакетів до правильного сервера, використовуючи IP-адресу, яка вказує місце розташування сервера в мережі.


🖕Передача даних: HTTP-запит інкапсулюється в TCP-пакети і передається через мережу до сервера. Сервер обробляє запит і відправляє HTTP-відповідь (наприклад, HTML-код веб-сторінки) назад на клієнтську сторону тим же шляхом.

 

FTP (File Transfer Protocol): FTP — це стандартний протокол для передачі файлів між комп'ютерами через Інтернет.

SMTP (Simple Mail Transfer Protocol): — це протокол, призначений для відправки електронних листів.

 

gRPC — це сучасний фреймворк для віддаленого виклику процедур (Remote Procedure Call), який дозволяє додаткам, що працюють на різних комп'ютерах, ефективно спілкуватися між собою.

Made with Slides.com