Sobes.tech
Junior — Middle

Hogyan valósítható meg egy egységes jogosultsági rendszer különböző tesztesetekhez?

sobes.tech MI

Válasz az MI-től

Az egységes hitelesítési rendszer bevezetéséhez külön modult vagy segédprogramot hoznak létre, amely felelős az autentikációs folyamatért és a hozzáférési tokenek megszerzéséért. Ezt a modult újra lehet használni minden tesztben, elkerülve a kód ismétlését és megkönnyítve a karbantartást.

Fő megközelítések:

  • API használata az autorizációhoz: A teszt elején meghívják a bejelentkezési API-t, a kapott tokent elmentik, és a kérés fejlécében használják.
  • A token tárolása globális kontextusban: Például a tesztkeretben a tokent globális változóban vagy a munkamenet kontextusában lehet tárolni.
  • A token átadása a teszteknek: A tesztek egy közös helyről szerzik be a tokent, és használják az autorizációhoz.

Python példaként requests és pytest fixtures használatával:

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

Ez a megközelítés lehetővé teszi az autorizáció központosítását és annak használatát különböző tesztekben anélkül, hogy a kódot ismételni kellene.