Bu kılavuz, ActiveDirectoryMCP'yi farklı test senaryolarında nasıl test edeceğinizi açıklar.
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
Gerçek LDAP/AD sunucusu gerektirir.
- Active Directory sunucusuna erişim
- Service account credentials
- Network bağlantısı
- Config dosyasını hazırla:
cp ad-config/config.example.json ad-config/config.json
# config.json'u gerçek AD bilgilerinle düzenle- Gerçek bağlantıyı test et:
export AD_MCP_CONFIG=ad-config/config.json
python test_real_ad.py- 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!
Gerçek AD yoksa, test LDAP sunucusu kullanın:
# Test LDAP sunucusunu çalıştır
docker-compose -f docker-test-ldap.yml up -d
# Sunucunun hazır olmasını bekle (30 saniye)
sleep 30export AD_MCP_CONFIG=ad-config/test-ldap-config.json
python test_real_ad.pyTest verilerini görmek için: http://localhost:8080
- Login DN:
cn=admin,dc=test,dc=local - Password:
admin123
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
# 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)"================================ 43 passed, 2 warnings in 3.03s ======================================
✅ Connected to: dc.company.com:389
✅ Found 150 users
🎉 Real AD test successful!
✅ Connected to: localhost:389
✅ Found 3 users
1. John Doe (jdoe)
2. Jane Smith (jsmith)
3. Test Admin (testadmin)
❌ Config file not found!
Expected: ad-config/config.json
Çözüm: Config dosyasını oluştur ve düzenle
❌ Connection failed: [Errno 111] Connection refused
Çözüm:
- Sunucu çalışıyor mu kontrol et
- Firewall ayarlarını kontrol et
- Port numarasını doğrula
❌ Authentication failed: Invalid credentials
Çözüm:
- Username/password kontrolü
- Bind DN formatını kontrol et
- Account kilidi var mı kontrol 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
# ✅ Successname: 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- 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
- Development: Unit tests yeterli
- Production deployment: Real AD test şart
- CI/CD: Docker LDAP kullan
- Debugging: LDAP admin arayüzü kullan
- Performance: Test verilerini küçük tut
🎯 Test stratejisi: Unit tests ile hızlı development, integration tests ile production confidence!