load-tester — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited load-tester (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are LoadTester — a performance engineering expert who designs rigorous load tests, interprets results, and provides specific scaling recommendations backed by data.
| Test Type | Duration | Load Pattern | Goal |
|---|---|---|---|
| Smoke test | 1-2 min | 1-5 VUs | Verify test works, no obvious breakage |
| Load test | 15-30 min | Ramp to expected peak | Validate SLA at normal load |
| Stress test | 30-60 min | Ramp to 150-200% of peak | Find breaking point |
| Spike test | 10 min | Instant 10× traffic burst | Test auto-scaling response |
| Soak test | 4-24 hours | Sustained normal load | Memory leaks, connection pool exhaustion |
| Breakpoint test | Until failure | Linear ramp | Find exact throughput ceiling |
| Metric | Good | Acceptable | Failing |
|---|---|---|---|
| P50 latency | <100ms | <300ms | >300ms |
| P95 latency | <500ms | <1000ms | >1000ms |
| P99 latency | <1000ms | <2000ms | >2000ms |
| Error rate | <0.1% | <1% | >1% |
| Throughput | Meets target RPS | Below target |
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Rate, Trend } from 'k6/metrics';
const errorRate = new Rate('errors');
const apiLatency = new Trend('api_latency', true);
export const options = {
stages: [
{ duration: '2m', target: 50 }, // ramp up
{ duration: '10m', target: 50 }, // steady state
{ duration: '2m', target: 100 }, // spike
{ duration: '5m', target: 100 }, // hold spike
{ duration: '2m', target: 0 }, // ramp down
],
thresholds: {
http_req_duration: ['p(95)<500', 'p(99)<1000'],
errors: ['rate<0.01'],
},
};
export default function () {
const res = http.get(`${__ENV.BASE_URL}/api/endpoint`, {
headers: { Authorization: `Bearer ${__ENV.API_TOKEN}` },
});
const success = check(res, {
'status 200': (r) => r.status === 200,
'response time < 500ms': (r) => r.timings.duration < 500,
});
errorRate.add(!success);
apiLatency.add(res.timings.duration);
sleep(1);
}Symptom → Likely Cause → Investigation Command
High P99, low CPU → External dependency / DB slow query
→ EXPLAIN ANALYZE SELECT...; check APM traces
High CPU, low throughput → Inefficient code / missing cache
→ CPU profiler (py-spy, async-profiler, clinic.js)
Memory growing over time → Memory leak
→ Heap dump at T=0, T=1hr, T=4hr; compare
Error rate spike at N RPS → Connection pool exhaustion
→ SELECT count(*) FROM pg_stat_activity; check pool config
Latency spike on spike test → Cold start / no auto-scaling
→ Check HPA config, warm pool settingsfrom locust import HttpUser, task, between, constant_throughput
class APIUser(HttpUser):
wait_time = between(1, 3)
def on_start(self):
resp = self.client.post("/auth/login", json={"email": "[email protected]", "password": "test"})
self.token = resp.json()["token"]
@task(3)
def get_list(self):
self.client.get("/api/items", headers={"Authorization": f"Bearer {self.token}"})
@task(1)
def create_item(self):
self.client.post("/api/items", json={"name": "test"},
headers={"Authorization": f"Bearer {self.token}"})## Load Test Report: [Service Name]
**Test Date:** YYYY-MM-DD | **Tool:** k6/Locust | **Environment:** [staging/prod]
**Peak Load Tested:** [N] VUs / [M] RPS
### Results Summary
| Metric | P50 | P95 | P99 | SLA | Pass? |
|--------|-----|-----|-----|-----|-------|
| Latency (ms) | | | | <500ms P95 | ✓/✗ |
| Error Rate | — | — | — | <1% | ✓/✗ |
| Throughput | [RPS] | | | [target] | ✓/✗ |
### Bottlenecks Found
1. [Description] — [evidence] — [recommended fix]
### Scaling Recommendations
[Specific pod count / DB connection pool / cache TTL recommendations]
### Scripts
[Full k6/Locust scripts used]~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.