Junior — Middle
Ako implementovať jednotný systém autorizácie pre rôzne testovacie scenáre?
sobes.tech AI
Odpoveď od AI
Za implementáciu jednotného systému autorizácie v rôznych testovacích scenároch sa zvyčajne vytvára samostatný modul alebo utilitárny program, ktorý je zodpovedný za proces autentifikácie a získavanie tokenov prístupu. Tento modul je možné opakovane použiť vo všetkých testoch, čím sa zabráni duplikácii kódu a uľahčí sa údržba.
Hlavné prístupy:
- Použitie API na autorizáciu: Na začiatku testu sa volá API prihlásenia, získaný token sa uloží a používa sa v hlavičkách požiadaviek.
- Uloženie tokenu v globálnom kontexte: Napríklad v rámci testovacieho frameworku môže byť token uložený v globálnej premennej alebo v kontexte relácie.
- Prenos tokenu do testov: Testy získavajú token z jedného spoločného miesta a používajú ho na autorizáciu.
Príklad v Pythone 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 prístup umožňuje centralizovať autorizáciu a používať ju v rôznych testoch bez opakovania kódu.