Sobes.tech
Junior — Middle

Jak implementovat jednotný systém autorizace pro různé testovací scénáře?

sobes.tech AI

Odpověď od AI

Pro implementaci jednotného systému autorizace v různých testovacích scénářích se obvykle vytváří samostatný modul nebo utilita, která je zodpovědná za proces autentifikace a získání přístupových tokenů. Tento modul lze znovu použít ve všech testech, čímž se zabrání duplicitě kódu a usnadní údržba.

Hlavní přístupy:

  • Použití API pro autorizaci: Na začátku testu se zavolá API přihlášení, získaný token se uloží a používá se v hlavičkách požadavků.
  • Uložení tokenu v globálním kontextu: Například ve frameworku testů lze token uložit do globální proměnné nebo do kontextu relace.
  • Předání tokenu do testů: Testy získají token z jednoho společného místa a používají ho pro autorizaci.

Příklad v Pythonu s requests a fixtures pytest:

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

Tento přístup umožňuje centralizovat autorizaci a používat ji v různých testech bez opakování kódu.