Junior — Middle
Fərqli test ssenariləri üçün vahid avtorizasiya sistemini necə həyata keçirmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Fərqli test ssenarilərində vahid icazə sistemini həyata keçirmək üçün adətən autentifikasiya və giriş tokenlərinin alınmasından məsul olan ayrıca modul və ya utilit yaradılır. Bu modul bütün testlərdə təkrar istifadə oluna bilər, bu da kod təkrarlamasını qarşısını alır və dəstək işini asanlaşdırır.
Əsas yanaşmalar:
- İcazə üçün API-dən istifadə: Testin əvvəlində giriş API çağırılır, əldə edilən token yadda saxlanılır və sorğu başlıqlarında istifadə olunur.
- Tokenin qlobal kontekstdə saxlanması: Məsələn, test çərçivəsində token qlobal dəyişəndə və ya sessiya kontekstində saxlanıla bilər.
- Tokenin testlərə ötürülməsi: Testlər ümumi yerdən token alır və onu icazə üçün istifadə edir.
Python-da requests və pytest fixtures istifadə edərək nümunə:
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
Bu yanaşma icazəni mərkəzləşdirir və kodu təkrarlamadan müxtəlif testlərdə istifadə etməyə imkan verir.