first commit

This commit is contained in:
2026-05-22 11:46:43 +02:00
commit 2ebd8fb16b
29 changed files with 3356 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
import { test } from '@playwright/test';
import { markManual } from '../../helpers/manual';
// Performance tests require SIP load generators, sustained telephony infrastructure,
// and extended monitoring. None can be executed by Playwright alone.
test.describe('pbx-performance', () => {
test('pbx-performance-check-cpu_memory_disk_io_utilization_under_sustained_load', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('Requires SIPp load generator, server-side performance monitoring (Prometheus/Grafana or top/iostat), and a dedicated test environment with no other traffic');
testInfo.annotations.push({ type: 'description', description: 'Verify CPU, memory, and disk I/O remain within acceptable limits under sustained call load' });
// Manual steps:
// 1. Prepare SIPp scenario with target concurrent call count (e.g., 100, 200, 500 CPS).
// 2. Configure monitoring: collect CPU%, RAM%, disk I/O (iostat) every 10 s.
// 3. Run SIPp load for 30 minutes at target load.
// 4. Record peak and average CPU / RAM / disk read-write.
// 5. Verify: CPU < 80%, RAM < 90%, disk I/O latency < 20 ms.
// 6. Record all findings and compare against accepted SLA thresholds.
});
test('pbx-performance-check-long_duration_stability_72h_test', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('72-hour test requires dedicated test environment, SIPp continuous load, automated monitoring with alerting, and human review of metrics at intervals — cannot be managed by a browser automation tool');
testInfo.annotations.push({ type: 'description', description: 'Verify system stability under continuous call load over a 72-hour period without degradation, crashes, or memory leaks' });
// Manual steps:
// 1. Set up SIPp to run a steady call load (e.g., 50% max capacity) continuously.
// 2. Deploy monitoring: CPU, RAM, open file descriptors, active calls, call failure rate.
// 3. Set up alerts if: call failure rate > 1%, RAM > 90%, or any process restarts.
// 4. Run for 72 hours.
// 5. Review metrics at 24h, 48h, and 72h checkpoints.
// 6. Verify: no service restarts, no call failure spike, resource usage stable.
// 7. Document final metrics report.
});
test('pbx-performance-check-memory_leak_and_resource_cleanup_detection', async ({ page }, testInfo) => {
testInfo.annotations.push({ type: 'automationStatus', description: 'manual' });
testInfo.annotations.push({ type: 'testType', description: 'check' });
markManual('Requires hours/days of monitored operation with active call load and memory profiling tools (Valgrind, heap dumps, or OS-level monitoring) — not achievable via browser automation');
testInfo.annotations.push({ type: 'description', description: 'Detect memory leaks and verify proper resource cleanup over extended operation under call load' });
// Manual steps:
// 1. Record baseline memory (RSS, heap) of all PBX processes at t=0.
// 2. Run a call load for 4 hours (enough to surface leaks).
// 3. Monitor memory every 30 minutes: record process RSS, open FDs, thread count.
// 4. After load stops, monitor resource cleanup over 15 minutes.
// 5. Compare t=0 vs end baseline: memory growth > 10% is a potential leak.
// 6. If leak suspected, repeat with Valgrind / heap profiler for confirmation.
// 7. Document: memory trend graph, peak values, any confirmed leaks.
});
});