| Property |
Value |
| ID |
PQ-001 |
| Version |
1.0 |
| Verifies Against |
URS (performance aspects), arc42/10 - Quality Scenarios |
| Status |
Draft |
| Author |
|
| Approved By |
|
| Date |
|
Purpose
Verify that the Essert.MF standard product meets performance requirements under realistic operating conditions. The PQ leverages the existing Performance Benchmark CLI.
PQ Execution
Full PQ Run
cd Essert.MF.PerformanceBenchmark
dotnet run -- run # Run all benchmark suites
dotnet run -- run --suite restapi # REST API benchmarks only
dotnet run -- compare --current ./Results/latest.json # Compare with baseline
PQ Test Items
| Property |
Value |
| URS Reference |
URS-SYS-001.3 (health check), URS-DAT-001 |
| QS Reference |
QS-P3 |
| Benchmark Suite |
Connectivity |
| Command |
dotnet run -- run --suite connectivity |
| Pass Criteria |
All 8 database connections < 100ms |
PQ-001.2: REST API Response Times
| Property |
Value |
| URS Reference |
URS-INT-001.1 |
| QS Reference |
QS-P1 |
| Benchmark Suite |
REST API (55 endpoints) |
| Command |
dotnet run -- run --suite restapi |
| Pass Criteria |
See thresholds below |
Thresholds:
| Endpoint Type |
P50 |
P95 |
P99 |
| Simple GET (single entity) |
50ms |
150ms |
200ms |
| List GET (paginated) |
100ms |
300ms |
500ms |
| Complex query |
200ms |
500ms |
800ms |
| POST (create) |
100ms |
300ms |
500ms |
| PUT (update) |
80ms |
250ms |
400ms |
| DELETE |
50ms |
150ms |
250ms |
PQ-001.3: Repository Operations
| Property |
Value |
| URS Reference |
URS-PAR-001.1-2 (CRUD), URS-DAT-001.2 (CRC) |
| QS Reference |
QS-P4 |
| Benchmark Suite |
Repository |
| Command |
dotnet run -- run --suite repository |
| Pass Criteria |
All repository CRUD operations < 500ms |
| Property |
Value |
| URS Reference |
URS-PRD-001.5 (cascading delete), URS-PAR-001.5 (all mappings) |
| Benchmark Suite |
Scenario |
| Command |
dotnet run -- run --suite scenario |
| Pass Criteria |
Multi-step workflows < 2000ms |
PQ-001.5: Concurrent Load
| Property |
Value |
| URS Reference |
URS-INT-001.1 |
| QS Reference |
Concurrent Load Targets |
| Benchmark Suite |
REST API (concurrent) |
| Command |
dotnet run -- run --suite restapi (concurrent load tests) |
| Pass Criteria |
See thresholds below |
Thresholds:
| Concurrent Users |
Throughput |
Error Rate |
| 10 |
> 50 req/s |
< 0.1% |
| 50 |
> 100 req/s |
< 0.5% |
| 100 |
> 150 req/s |
< 1% |
PQ Results Template
| PQ Item |
Description |
Threshold |
Actual |
Result |
| PQ-001.1 |
DB connectivity |
< 100ms |
|
|
| PQ-001.2 |
REST API response |
See above |
|
|
| PQ-001.3 |
Repository CRUD |
< 500ms |
|
|
| PQ-001.4 |
Complex scenarios |
< 2000ms |
|
|
| PQ-001.5 |
Concurrent load |
See above |
|
|
Benchmark Results File: ./Results/latest.json
Executed By: __ Date: __
Reviewed By: __ Date: __
Baseline Management
# Save current results as baseline
dotnet run -- run --baseline
# Compare future runs against baseline
dotnet run -- compare --current ./Results/latest.json --threshold 10
Exit code 2 indicates performance regression exceeding threshold.
Supporting Evidence (Archived)