# Performance Tests ### NFT-PERF-01: Login Endpoint Latency **Summary**: Login endpoint responds within acceptable latency under normal load. **Traces to**: AC-1 **Metric**: Response time (p95) **Preconditions**: - System running with seed data - 10 concurrent users **Steps**: | Step | Consumer Action | Measurement | |------|----------------|-------------| | 1 | Send 100 login requests (10 concurrent) | Measure p50, p95, p99 response times | **Pass criteria**: p95 latency < 500ms **Duration**: 30 seconds --- ### NFT-PERF-02: Resource Download Latency (Small File) **Summary**: Encrypted resource download for a small file (1 KB) completes quickly. **Traces to**: AC-14 **Metric**: Response time including encryption **Preconditions**: - 1 KB test file uploaded - User authenticated with bound hardware **Steps**: | Step | Consumer Action | Measurement | |------|----------------|-------------| | 1 | Send 50 encrypted download requests (5 concurrent) | Measure p50, p95 response times | **Pass criteria**: p95 latency < 1000ms **Duration**: 30 seconds --- ### NFT-PERF-03: Resource Download Latency (Large File) **Summary**: Encrypted resource download for a larger file (50 MB) completes within limits. **Traces to**: AC-13, AC-14 **Metric**: Response time including encryption + transfer **Preconditions**: - 50 MB test file uploaded - User authenticated with bound hardware **Steps**: | Step | Consumer Action | Measurement | |------|----------------|-------------| | 1 | Send 5 sequential encrypted download requests | Measure p50, p95 response times | **Pass criteria**: p95 latency < 30000ms (30s) **Duration**: 3 minutes --- ### NFT-PERF-04: User List Endpoint Under Load **Summary**: User list endpoint responds within limits when DB has many users. **Traces to**: AC-9 **Metric**: Response time **Preconditions**: - 500 users in database - Caller is ApiAdmin **Steps**: | Step | Consumer Action | Measurement | |------|----------------|-------------| | 1 | Send 50 GET /users requests (10 concurrent) | Measure p50, p95 response times | **Pass criteria**: p95 latency < 1000ms **Duration**: 30 seconds