Use when a criterion mentions speed or limits, or the change touches a list, query, endpoint or page that could get slower - timing loops, the N-vs-10N data check and Lighthouse on a production build
Scanned 10/2/2026
npx -y skills add makifbaysal/tasktrooper --skill performance-smoke-testing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Performance Smoke Testing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/makifbaysal-performance-smoke-testing)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: performance-smoke-testing
category: qa
description: Use when a criterion mentions speed or limits, or the change touches a list, query, endpoint or page that could get slower - timing loops, the N-vs-10N data check and Lighthouse on a production build
---
# Performance Smoke Testing
Not full load testing — a smoke check run locally, never against stage or prod.
## API
```bash
for i in $(seq 20); do curl -s -o /dev/null -w '%{time_total}\n' "$BASE/api/tasks?limit=50"; done | sort -n | awk '{a[NR]=$1} END{print "p50="a[int(NR*.5)]" p95="a[int(NR*.95)]" max="a[NR]}'
```
Then run the same with 10x the seeded rows. p95 growing more than 3x for 10x the data is an N+1 suspicion — report it with the two numbers. Fail bar: p95 >1s for a simple read on localhost, or any number a criterion states explicitly. 0.5-1s is a note, not a fail.
## Concurrency smoke
Only when the change implies it (a shared resource, a write path under contention):
```bash
npx -y autocannon -c 10 -d 10 <url>
```
Errors must be 0.
## Web
Measure a **production build**, never a dev server — dev builds are unoptimized and that is where false fails come from:
```bash
npm run build && (nohup npx vite preview --port 4173 > "$QA/preview.log" 2>&1 &)
CHROME_PATH="$CHROME_BIN" npx -y lighthouse@13 http://localhost:4173/<page> --only-categories=performance --form-factor=mobile --screenEmulation.width=360 --chrome-flags="--headless=new" --output=json --output-path="$QA/lh-perf.json"
```
Report LCP/CLS/TBT against "good": LCP ≤2.5s, CLS ≤0.1, TBT ≤200ms. Fail only for a criterion's own number or a CLS shift you can see on a changed screen; other misses are notes, not fails.
## Never
Load-test stage or prod. Use k6 only when the repo already ships k6 scripts — not as the default tool.
## Recording
Record cases as `category: other` with a title prefix `perf:` — the category enum has no performance value of its own.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!