Junior — Middle
Kā īstenot vienotu autorizācijas sistēmu dažādiem testu scenārijiem?
sobes.tech AI
Atbilde no AI
Lai ieviestu vienotu autorizācijas sistēmu dažādos testēšanas scenārijos, parasti tiek izveidots atsevišķs modulis vai utilīta, kas ir atbildīga par autentifikācijas procesu un piekļuves tokenu iegūšanu. Šo moduli var atkārtoti izmantot visās testos, kas novērš koda dublēšanu un atvieglo uzturēšanu.
Galvenie pieejas veidi:
- API izmantošana autorizācijai: Testa sākumā tiek izsaukts pieteikšanās API, iegūtais tokens tiek saglabāts un tiek izmantots pieprasījumu galvenes.
- Tokena glabāšana globālā kontekstā: Piemēram, testu ietvarā tokens var tikt saglabāts globālā mainīgajā vai sesijas kontekstā.
- Tokena nodošana testiem: Testi iegūst tokenu no kopīgas vietas un izmanto to autorizācijai.
Piemērs Python ar requests un 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
Šī pieeja ļauj centralizēt autorizāciju un izmantot to dažādos testos bez koda atkārtošanas.