Junior — Middle
Kaip įgyvendinti vieningą autorizacijos sistemą skirtingiems testų scenarijams?
sobes.tech AI
Atsakymas iš AI
Siekiant įgyvendinti vieningą autorizacijos sistemą skirtinguose testavimo scenarijuose, paprastai sukuriamas atskiras modulis arba įrankis, kuris atsakingas už autentifikacijos procesą ir prieigos žetonų gavimą. Šis modulis gali būti pakartotinai naudojamas visuose testuose, kas padeda išvengti kodo dubliavimo ir palengvina priežiūrą.
Pagrindiniai požiūriai:
- Naudoti API autorizacijai: Pradžioje kviečiama prisijungimo API, gautas žetonas saugomas ir naudojamas užklausų antraštėse.
- Žetono saugojimas globaliame kontekste: Pavyzdžiui, testų framework'e žetonas gali būti saugomas globalioje kintamajame arba sesijos kontekste.
- Žetono perdavimas testams: Testai gauna žetoną iš bendros vietos ir naudoja jį autorizacijai.
Pavyzdys Python kalba naudojant requests ir 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
Šis požiūris leidžia centralizuoti autorizaciją ir naudoti ją skirtinguose testuose be kodo kartojimo.