Skip to content

Latest commit

 

History

History
230 lines (185 loc) · 5.17 KB

File metadata and controls

230 lines (185 loc) · 5.17 KB

ActiveDirectoryMCP Testing Guide

Bu kılavuz, ActiveDirectoryMCP'yi farklı test senaryolarında nasıl test edeceğinizi açıklar.

🧪 Test Türleri

1. Unit Tests (Mock/Stub) - ✅ Çalışıyor

Gerçek LDAP sunucusu gerektirmez, mock verilerle çalışır.

# Tüm testleri çalıştır
pytest -v

# Sadece specific testler
pytest tests/test_config.py -v
pytest tests/test_user_tools.py -v

# Test sonucu: 43/43 geçiyor ✅

Avantajları:

  • Hızlı çalışır
  • Network gerektirmez
  • Hata senaryolarını test eder
  • CI/CD için ideal

2. Integration Tests (Real LDAP) - Opsiyonel

Gerçek LDAP/AD sunucusu gerektirir.

🔧 Gerçek AD ile Test

Gereksinimler

  • Active Directory sunucusuna erişim
  • Service account credentials
  • Network bağlantısı

Adımlar

  1. Config dosyasını hazırla:
cp ad-config/config.example.json ad-config/config.json
# config.json'u gerçek AD bilgilerinle düzenle
  1. Gerçek bağlantıyı test et:
export AD_MCP_CONFIG=ad-config/config.json
python test_real_ad.py
  1. Beklenen çıktı:
🔗 Real Active Directory Connection Test
✅ Config loaded: ldap://dc.company.com:389
✅ LDAP Manager initialized  
✅ Connected to: dc.company.com:389
🔍 Testing user listing...
✅ Found 150 users
   1. John Smith (jsmith)
   2. Jane Doe (jdoe)
   3. Mike Wilson (mwilson)
🎉 Real AD test successful!

🐳 Docker Test LDAP Sunucusu

Gerçek AD yoksa, test LDAP sunucusu kullanın:

1. Test LDAP Sunucusunu Başlat

# Test LDAP sunucusunu çalıştır
docker-compose -f docker-test-ldap.yml up -d

# Sunucunun hazır olmasını bekle (30 saniye)
sleep 30

2. Test Config'i Kullan

export AD_MCP_CONFIG=ad-config/test-ldap-config.json
python test_real_ad.py

3. LDAP Admin Arayüzü

Test verilerini görmek için: http://localhost:8080

  • Login DN: cn=admin,dc=test,dc=local
  • Password: admin123

4. Test Verileri

Docker sunucusu şu test verilerini içerir:

  • 3 kullanıcı: jdoe, jsmith, testadmin
  • 4 grup: IT Department, Sales Team, Administrators, All Users
  • OU yapısı: people, groups, computers, service_accounts

🔍 Manuel LDAP Test

LDAP bağlantısını manuel test et:

# Bağlantı testi
ldapsearch -x -H ldap://localhost:389 \
  -D "cn=admin,dc=test,dc=local" \
  -w admin123 \
  -b "dc=test,dc=local" \
  "(objectClass=*)"

# Kullanıcıları listele
ldapsearch -x -H ldap://localhost:389 \
  -D "cn=admin,dc=test,dc=local" \
  -w admin123 \
  -b "ou=people,dc=test,dc=local" \
  "(objectClass=inetOrgPerson)"

📊 Test Senaryoları

Başarılı Test Göstergeleri

✅ Unit Tests

================================ 43 passed, 2 warnings in 3.03s ======================================

✅ Real AD Test

✅ Connected to: dc.company.com:389
✅ Found 150 users
🎉 Real AD test successful!

✅ Docker LDAP Test

✅ Connected to: localhost:389  
✅ Found 3 users
   1. John Doe (jdoe)
   2. Jane Smith (jsmith)
   3. Test Admin (testadmin)

Hata Senaryoları

❌ Config Eksik

❌ Config file not found!
   Expected: ad-config/config.json

Çözüm: Config dosyasını oluştur ve düzenle

❌ Bağlantı Hatası

❌ Connection failed: [Errno 111] Connection refused

Çözüm:

  • Sunucu çalışıyor mu kontrol et
  • Firewall ayarlarını kontrol et
  • Port numarasını doğrula

❌ Kimlik Doğrulama Hatası

❌ Authentication failed: Invalid credentials

Çözüm:

  • Username/password kontrolü
  • Bind DN formatını kontrol et
  • Account kilidi var mı kontrol et

🚀 HTTP Server Test

HTTP transport'u test et:

# HTTP sunucusunu başlat
./start_http_server.sh

# Başka terminal'de test et
python test_scripts/test_http_server.py

# Beklenen çıktı:
# ✅ Server is available!
# ✅ Health Check
# ✅ Success

🔄 CI/CD Pipeline

GitHub Actions Örneği

name: Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.11'
    - name: Install dependencies
      run: |
        pip install -e ".[dev]"
    - name: Run unit tests
      run: |
        pytest -v
    - name: Test Docker LDAP
      run: |
        docker-compose -f docker-test-ldap.yml up -d
        sleep 30
        export AD_MCP_CONFIG=ad-config/test-ldap-config.json
        python test_real_ad.py

📝 Test Checklist

  • Unit Tests: 43/43 geçiyor
  • Config validation: Geçersiz config test edildi
  • Mock scenarios: Error handling test edildi
  • Real AD connection: Gerçek sunucuyla test edildi
  • HTTP transport: HTTP endpoint'ler test edildi
  • Docker LDAP: Test sunucusuyla test edildi

💡 İpuçları

  1. Development: Unit tests yeterli
  2. Production deployment: Real AD test şart
  3. CI/CD: Docker LDAP kullan
  4. Debugging: LDAP admin arayüzü kullan
  5. Performance: Test verilerini küçük tut

🎯 Test stratejisi: Unit tests ile hızlı development, integration tests ile production confidence!