Sobes.tech
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.