Skip to content
Back to skills

Performance Smoke Testing

ASecurity

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

  • 109 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsgobashtestingapiperformance

Works with

  • api

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add makifbaysal/tasktrooper --skill performance-smoke-testing --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Performance Smoke Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/makifbaysal-performance-smoke-testing/badge)](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.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…