Sobes.tech
Back to questions
Junior — Middle
79

Каким образом реализовать единую систему авторизации для разных тестовых сценариев?

Answer from AI

sobes.tech AI

Для реализации единой системы авторизации в разных тестовых сценариях обычно создают отдельный модуль или утилиту, которая отвечает за процесс аутентификации и получение токенов доступа. Этот модуль можно использовать повторно во всех тестах, что позволяет избежать дублирования кода и упрощает поддержку.

Основные подходы:

  • Использование API для авторизации: В начале теста вызывается API для входа, полученный токен сохраняется и используется в заголовках запросов.
  • Хранение токена в глобальном контексте: Например, в тестовом фреймворке можно сохранить токен в глобальной переменной или в контексте сессии.
  • Передача токена в тесты: Тесты получают токен из общего места и используют его для авторизации.

Пример на Python с использованием requests и pytest fixtures:

import pytest
import requests

@pytest.fixture(scope='session')
def auth_token():
    response = requests.post('https://example.com/api/login', json={'username': 'user', 'password': 'pass'})
    return response.json()['token']


def test_scenario_1(auth_token):
    headers = {'Authorization': f'Bearer {auth_token}'}
    response = requests.get('https://example.com/api/data', headers=headers)
    assert response.status_code == 200


def test_scenario_2(auth_token):
    headers = {'Authorization': f'Bearer {auth_token}'}
    response = requests.post('https://example.com/api/action', headers=headers)
    assert response.status_code == 201

Такой подход позволяет централизовать авторизацию и использовать её в разных тестах без повторения кода.