Какой у вас уровень понимания клиент-серверной архитектуры?

«Какой у вас уровень понимания клиент-серверной архитектуры?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Уверенное понимание принципов клиент-серверной архитектуры. Знаю протоколы (HTTP/HTTPS, WebSockets), модели взаимодействия (REST API, GraphQL) и ключевые аспекты тестирования.

Основные компетенции:

  • Тестирование API с использованием Postman, Swagger, написание автотестов (на Python/Java).
  • Работа с аутентификацией и авторизацией: OAuth 2.0, JWT, Basic Auth.
  • Анализ сетевых запросов, логов сервера, кодов состояния HTTP.
  • Понимание работы с базами данных (SQL) в контексте проверки целостности данных после API-вызовов.
  • Базовое знакомство с нагрузочным тестированием (например, JMeter).

Пример проверки REST API на Python (requests):

import requests

# Проверка GET-запроса
response = requests.get("https://api.example.com/users", headers={"Authorization": "Bearer token123"})
assert response.status_code == 200, f"Ожидался код 200, получен {response.status_code}"
assert response.headers["Content-Type"] == "application/json"

data = response.json()
assert isinstance(data, list), "Ответ должен быть списком"
assert len(data) > 0, "Список пользователей не должен быть пустым"