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
Такой подход позволяет централизовать авторизацию и использовать её в разных тестах без повторения кода.