Sobes.tech
Junior — Middle

Farklı test senaryoları için tek bir yetkilendirme sistemi nasıl uygulanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Farklı test senaryolarında tek bir yetkilendirme sistemi uygulamak için genellikle kimlik doğrulama ve erişim tokenlarının alınmasından sorumlu ayrı bir modül veya yardımcı program oluşturulur. Bu modül, kod tekrarını önlemek ve bakımı kolaylaştırmak için tüm testlerde yeniden kullanılabilir.

Ana yaklaşımlar:

  • Yetkilendirme için API kullanımı: Testin başında giriş API'si çağrılır, alınan token saklanır ve istek başlıklarında kullanılır.
  • Tokenin küresel bağlamda saklanması: Örneğin, test çerçevesinde token, küresel bir değişkende veya oturum bağlamında saklanabilir.
  • Tokenin testlere iletilmesi: Testler, ortak bir yerden token alır ve yetkilendirme için kullanır.

Python'da requests ve pytest fixture kullanımıyla örnek:

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 yaklaşım, yetkilendirmeyi merkezi hale getirir ve kod tekrarına gerek kalmadan farklı testlerde kullanılmasını sağlar.