API testing with POSTMAN

Iryna Volnykh

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

 

ISTQB Certified Tester

Automation/Manual QA engineer

QA lead & exScrum master at Vaimo

Teacher at Beetroot Academy

: - Ей ти, API! бігом створи мені користувача!

: - Ей ти, API! бігом створи мені користувача!

API

: - Добре добре! Тримай!

Protocol

(HTTP, HTTPs)

status code

? response body

headers

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 визначає функціональність яку надає програма, при цьому API абстрагується від того як саме ця функціональність реалізована.
 

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

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

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

SMTP (Simple Mail Transfer Protocol): — це протокол, призначений для відправки електронних листів. Facebook, безумовно, використовує SMTP або схожий протокол для відправки електронних листів своїм користувачам, таких як сповіщення про нові повідомлення, зміни налаштувань акаунту, повідомлення про безпеку та інші службові електронні листи.

 

GET          питає

POST       створює

PUT         замінює

DELETE   видаляє

Техніки тест дизайну

  • positive/negative (класи еквівалентності)
  • required/non required (класи еквівалентності)
  • граничні значення
  • decision table
  • use case testing

API ++

  • status codes
  • обробка помилок
  • обробка відповідей
  • авторизація та автентифікація

Reuse variable

1. Create environment

2. Add test to 1st request

 

var jsonData = JSON.parse(responseBody);postman.setEnvironmentVariable("id", jsonData.id);

 

3. Add variable in new request
 

Me on LinkedIn:

deck

By iravol

deck

  • 157