Junior — Middle
Kuidas rakendada ühtset autoriseerimissüsteemi erinevate teststsenaariumide jaoks?
sobes.tech AI
Vastus AI-lt
Ühtse sisselogimissüsteemi rakendamiseks erinevates teststsenaariumides luuakse tavaliselt eraldi moodul või utiliit, mis vastutab autentimise ja juurdepääsutokenite saamise protsessi eest. Seda moodulit saab uuesti kasutada kõigis testides, mis aitab vältida koodi dubleerimist ja lihtsustab hooldust.
Peamised lähenemised:
- API kasutamine autoriseerimiseks: Testi alguses kutsutakse API sisse logimiseks, saadud token salvestatakse ja kasutatakse päringute päistes.
- Tokeni salvestamine globaalses kontekstis: Näiteks testiraamistikus võib tokeni salvestada globaalsesse muutujasse või sessiooni konteksti.
- Tokeni edastamine testidele: Testid saavad tokeni ühest kohast ja kasutavad seda autoriseerimiseks.
Näide Pythonis, kasutades requests ja 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
Selline lähenemine võimaldab tsentraliseerida autoriseerimise ja kasutada seda erinevates testides ilma koodi kordamiseta.