Error Handling & Robustheit Test

Test 1: Ungültige API-Endpunkte

Test 2: Fehlende Daten

Test 3: Ungültiges JSON

Test 4: Netzwerkfehler Simulation

Test 5: XSS-Schutz

Test 6: Große Datenmengen

Test 7: Gleichzeitige Anfragen

Test 8: Frontend Error Handling

Test-Ergebnisse

", content: "", initials: "XS", createdAt: Date.now() }] } }; const response = await fetch('/api/manifest/sync', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(xssPayload) }); const result = await response.json(); // Prüfen ob XSS-Code escaped wurde if (result.success && !result.alert) { document.getElementById('xssProtection').innerHTML = '
✅ XSS-Schutz aktiv
'; addErrorResult('XSS-Schutz', true, 'XSS-Prevention funktioniert'); } else { document.getElementById('xssProtection').innerHTML = '
❌ XSS-Schutz unzureichend
'; addErrorResult('XSS-Schutz', false, 'XSS-Schutz unzureichend'); } } catch (error) { document.getElementById('xssProtection').innerHTML = `
❌ Fehler: ${error.message}
`; addErrorResult('XSS-Schutz', false, error.message); } } async function testLargeData() { try { // Erstelle große Datenmenge (1MB) const largeContent = 'A'.repeat(1024 * 1024); const largeData = { token: "test", data: { posts: [{ id: "large_data_test", title: "Large Data Test", content: largeContent, initials: "LD", createdAt: Date.now() }] } }; const response = await fetch('/api/manifest/sync', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(largeData) }); const result = await response.json(); if (response.status === 200) { document.getElementById('largeData').innerHTML = '
✅ Große Daten verarbeitet
'; addErrorResult('Große Daten', true, 'System kann große Datenmengen verarbeiten'); } else { throw new Error('Große Daten nicht verarbeitet'); } } catch (error) { document.getElementById('largeData').innerHTML = `
❌ Fehler bei großen Daten: ${error.message}
`; addErrorResult('Große Daten', false, error.message); } } async function testConcurrentRequests() { try { const requests = []; const results = []; // Sende 10 gleichzeitige Anfragen for (let i = 0; i < 10; i++) { const requestData = { token: "test_concurrent_" + i, data: { posts: [{ id: "concurrent_test_" + i + "_" + Date.now(), title: "Concurrent Test " + i, content: "Gleichzeitige Anfrage " + i, initials: "CT", createdAt: Date.now() }] } }; requests.push( fetch('/api/manifest/sync', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(requestData) }).then(response => response.json()) ); } const concurrentResults = await Promise.allSettled(requests); const successful = concurrentResults.filter(r => r.status === 'fulfilled' && r.value.success).length; if (successful >= 8) { // 80% Erfolgsrate document.getElementById('concurrentRequests').innerHTML = `
✅ ${successful}/10 Anfragen erfolgreich
`; addErrorResult('Gleichzeitige Anfragen', true, `${successful}/10 erfolgreich`); } else { document.getElementById('concurrentRequests').innerHTML = `
⚠️ Nur ${successful}/10 Anfragen erfolgreich
`; addErrorResult('Gleichzeitige Anfragen', false, `Nur ${successful}/10 erfolgreich`); } } catch (error) { document.getElementById('concurrentRequests').innerHTML = `
❌ Fehler: ${error.message}
`; addErrorResult('Gleichzeitige Anfragen', false, error.message); } } function testFrontendErrors() { try { // Test 1: Undefined Variable let undefinedVar; try { console.log(undefinedVar.someProperty); } catch (e) { console.log('Undefined Variable Error gefangen:', e.message); } // Test 2: Null Reference try { const nullObj = null; console.log(nullObj.someProperty); } catch (e) { console.log('Null Reference Error gefangen:', e.message); } // Test 3: JSON Parse Error try { JSON.parse('invalid json'); } catch (e) { console.log('JSON Parse Error gefangen:', e.message); } // Test 4: Type Error try { const num = 123; num.toUpperCase(); } catch (e) { console.log('Type Error gefangen:', e.message); } document.getElementById('frontendErrors').innerHTML = '
✅ Frontend Error Handling funktioniert
'; addErrorResult('Frontend Errors', true, 'Frontend Error Handling funktioniert'); } catch (error) { document.getElementById('frontendErrors').innerHTML = `
❌ Frontend Error Handling fehlerhaft: ${error.message}
`; addErrorResult('Frontend Errors', false, error.message); } } // Automatischer Start bei Seitenaufruf window.onload = function() { console.log('Error Handling Test gestartet'); };