Встречается на собеседованиях • сегодня

Как тестировать микросервисы

Тестирование микросервисов требует особого подхода из-за их распределенной природы. Основные аспекты:

  1. Юнит-тесты — тестируют отдельные модули сервиса.
  2. Интеграционные тесты — проверяют взаимодействие между сервисами (часто с моками зависимостей).
  3. Контрактное тестирование — гарантирует, что API сервисов соответствуют соглашениям (например, через Pact).
  4. E2E-тесты — проверяют всю систему, но их сложно поддерживать из-за множества зависимостей.
  5. Тестирование устойчивости — Chaos Engineering (например, через Chaos Monkey) для проверки отказоустойчивости.

Пример контрактного тестирования с Pact:

python
from pact import Consumer, Provider

def test_user_service_contract():
    pact = Consumer('Client').has_pact_with(Provider('UserService'))
    pact.given('user exists').upon_receiving('a request for user').with_request(
        method='GET',
        path='/user/1'
    ).will_respond_with(200, body={'id': 1, 'name': 'Alice'})
    
    with pact:
        response = requests.get(f'{pact.uri}/user/1')
        assert response.json() == {'id': 1, 'name': 'Alice'}

Также важно тестировать деплой, сетевые задержки и версионность API.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы