added e2e testsuite

This commit is contained in:
2026-01-25 12:57:12 +01:00
parent 552540e214
commit 416cddd496
10 changed files with 1333 additions and 6 deletions

View File

@@ -0,0 +1,139 @@
# End-to-End Test Ergebnisse
## Test-Übersicht
Das E2E-Test-Framework wurde erfolgreich implementiert und getestet!
## ✅ Erfolgreich getestete Entities
### CMietobjekt
- ✓ Create: Mietobjekt mit Adresse erstellen
- ✓ Read: Datensatz abrufen
- ✓ Update: Lage-Feld aktualisieren
- ✓ Delete: Datensatz löschen
### CVmhMietverhältnis
- ✓ Create: Mietverhältnis mit allen Pflichtfeldern
- ✓ Read: Datensatz validieren
- ✓ Update: Miete aktualisieren
- ✓ Delete: Datensatz löschen
- ✓ Relationship: Verknüpfung mit CMietobjekt über `vmhMietobjektId`
### CBeteiligte
- ✓ Create: Person mit Namen und Adresse
- ✓ Read: Personendaten abrufen
- ✓ Update: Telefonnummer ändern
- ✓ Delete: Person löschen
### CVmhRäumungsklage
- ✓ Create: Räumungsklage erstellen
- ✓ Read: Datensatz validieren
- ✓ Update: Gegenstandswert ändern
- ✓ Delete: Datensatz löschen
## 🔒 Entities mit Permissions-Beschränkung
### CKündigung
- User `dev-test` hat keine Berechtigung (403 Forbidden)
- Betrifft: READ, CREATE, UPDATE, DELETE
### CMietinkasso
- User `dev-test` hat keine Berechtigung (403 Forbidden)
- Betrifft: READ, CREATE, UPDATE, DELETE
### Ursache
Diese Entities sind durch ACL (Access Control Lists) gesperrt. Mögliche Gründe:
1. **Role-Einstellungen**: Der User ist einer Role zugeordnet, die diese Entities nicht erlaubt
2. **Team-Beschränkungen**: Entities sind team-spezifisch eingeschränkt
3. **Custom ACL-Implementierung**: Möglicherweise gibt es Custom ACL-Klassen
### Behebung
In der EspoCRM Admin-Oberfläche:
1. **Administration → Roles** → User's Role auswählen
2. Bei `CKündigung` und `CMietinkasso` auf "Enabled" setzen
3. Permissions auf "All" oder mindestens "Create: Yes, Read: All, Edit: All, Delete: All" setzen
Alternativ:
- **Administration → Users** → `dev-test` → Role/Teams prüfen
- Sicherstellen, dass der User Admin-Rechte hat oder eine Role mit Full Access
## 📊 Test-Statistik (letzter Lauf)
```
✅ CBeteiligte: 3/3 tests passed (100%)
🔒 CKndigung: 0/1 tests (Permission denied)
🔒 CMietinkasso: 0/1 tests (Permission denied)
✅ CMietobjekt: 3/3 tests passed (100%)
✅ CVmhMietverhltnis: 3/3 tests passed (100%)
✅ CVmhRumungsklage: 3/3 tests passed (100%)
Total: 12/14 tests executable
2 tests blocked by permissions
Time: ~0.2s
```
## 🎯 Framework-Features
### Implementiert
- ✅ CRUD-Tests für alle wichtigen Entities
- ✅ Relationship-Tests (belongsTo)
- ✅ Automatisches Cleanup (keine Test-Daten bleiben zurück)
- ✅ Permission-aware (erkennt 403-Fehler)
- ✅ Detailliertes Reporting
- ✅ Fehlerbehandlung mit Context
- ✅ Zeiterfassung pro Test
### Bereit für Erweiterung
- 📝 Weitere Entities hinzufügen (siehe [E2E_TESTS_README.md](E2E_TESTS_README.md))
- 🔗 Mehr Relationship-Tests (hasMany, manyToMany)
- ✅ Validierungs-Tests für berechnete Felder
- 📧 Workflow-Tests (wenn freigeschaltet)
## 🚀 Verwendung
### Standard-Test
```bash
./run_e2e_tests.sh
```
### Mit Python direkt
```bash
python3 e2e_tests.py
```
### Einzelne Entity testen
```python
from e2e_tests import CMietobjektTest
from espocrm_api_client import EspoCRMAPIClient
from e2e_tests import TestTracker
client = EspoCRMAPIClient(...)
tracker = TestTracker()
test = CMietobjektTest(client, tracker)
test.run_full_test()
```
## 📁 Dateien
- `espocrm_api_client.py` - REST API Client
- `e2e_tests.py` - Test-Framework mit allen Entity-Tests
- `run_e2e_tests.sh` - Shell-Wrapper
- `E2E_TESTS_README.md` - Vollständige Dokumentation
## ✨ Nächste Schritte
1. **Permissions klären** für CKündigung und CMietinkasso
2. **Weitere Entities** hinzufügen:
- CAdressen
- CBankverbindungen
- CDokumente
- CVmhErstgespraech
3. **hasMany Relationships** testen (benötigt API-Research)
4. **CI/CD Integration** (GitHub Actions, GitLab CI)
5. **Performance-Tests** mit größeren Datenmengen
---
**Status**: ✅ Framework vollständig funktionsfähig
**Test Coverage**: 4/6 Custom Entities (66.7%)
**Success Rate**: 100% für zugängliche Entities