Skill

testing-perf

Performance and load testing patterns — k6 load tests, Locust stress tests, pytest execution optimization (xdist parallel, plugins), test type classification, and performance benchmarking. Use when writing load tests, optimizing test execution speed, or setting up pytest infrastructure.

From ork
Install
1
Run in your terminal
$
npx claudepluginhub yonatangross/orchestkit --plugin ork
Tool Access

This skill is limited to using the following tools:

ReadGlobGrepWebFetchWebSearch
Supporting Assets
View in Repository
checklists/performance-checklist.md
checklists/pytest-production-checklist.md
references/custom-plugins.md
references/k6-patterns.md
references/xdist-parallel.md
rules/_sections.md
rules/execution.md
rules/perf-k6.md
rules/perf-locust.md
rules/perf-types.md
rules/pytest-execution.md
rules/pytest-plugins.md
scripts/test-case-template.md
Skill Content

Performance & Load Testing Patterns

Focused skill for performance testing, load testing, and pytest execution optimization. Covers k6, Locust, pytest-xdist parallel execution, custom plugins, and test type classification.

Quick Reference

AreaFilePurpose
k6 Load Testingrules/perf-k6.mdThresholds, stages, custom metrics, CI integration
Locust Testingrules/perf-locust.mdPython load tests, task weighting, auth flows
Test Typesrules/perf-types.mdLoad, stress, spike, soak test patterns
Executionrules/execution.mdCoverage reporting, parallel execution, failure analysis
Pytest Markersrules/pytest-execution.mdCustom markers, xdist parallel, worker isolation
Pytest Pluginsrules/pytest-plugins.mdFactory fixtures, plugin hooks, anti-patterns
k6 Patternsreferences/k6-patterns.mdStaged ramp-up, authenticated requests, test types
xdist Parallelreferences/xdist-parallel.mdDistribution modes, worker isolation, CI config
Custom Pluginsreferences/custom-plugins.mdconftest plugins, installable plugins, hook reference
Perf Checklistchecklists/performance-checklist.mdPlanning, setup, metrics, load patterns, analysis
Pytest Checklistchecklists/pytest-production-checklist.mdConfig, markers, parallel, fixtures, CI/CD
Test Templatescripts/test-case-template.mdFull test case documentation template

k6 Quick Start

Set up a load test with thresholds and staged ramp-up:

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '30s', target: 20 },  // Ramp up
    { duration: '1m', target: 20 },   // Steady state
    { duration: '30s', target: 0 },   // Ramp down
  ],
  thresholds: {
    http_req_duration: ['p(95)<500'],  // 95th percentile under 500ms
    http_req_failed: ['rate<0.01'],    // Less than 1% error rate
  },
};

export default function () {
  const res = http.get('http://localhost:8000/api/health');
  check(res, {
    'status is 200': (r) => r.status === 200,
    'response time < 200ms': (r) => r.timings.duration < 200,
  });
  sleep(1);
}

Run: k6 run --out json=results.json tests/load/api.js

Performance Test Types

TypeDurationVUsPurposeWhen to Use
Load5-10 minExpected trafficValidate normal conditionsEvery release
Stress10-20 min2-3x expectedFind breaking pointPre-launch
Spike5 minSudden 10x surgeTest auto-scalingBefore events
Soak4-12 hoursNormal loadDetect memory leaksWeekly/nightly

pytest Parallel Execution

Speed up test suites with pytest-xdist:

# pyproject.toml
[tool.pytest.ini_options]
addopts = ["-n", "auto", "--dist", "loadscope"]
markers = [
    "slow: marks tests as slow",
    "smoke: critical path tests for CI/CD",
]
# Run with parallel workers and coverage
pytest -n auto --dist loadscope --cov=app --cov-report=term-missing --maxfail=3

# CI fast path — skip slow tests
pytest -m "not slow" -n auto

# Debug mode — single worker
pytest -n 0 -x --tb=long

Worker Database Isolation

When running parallel tests with databases, isolate per worker:

@pytest.fixture(scope="session")
def db_engine(worker_id):
    db_name = f"test_db_{worker_id}" if worker_id != "master" else "test_db"
    engine = create_engine(f"postgresql://localhost/{db_name}")
    yield engine
    engine.dispose()

Key Thresholds

MetricTargetTool
p95 response time< 500msk6
p99 response time< 1000msk6
Error rate< 1%k6 / Locust
Business logic coverage90%pytest-cov
Critical path coverage100%pytest-cov

Decision Guide

ScenarioRecommendation
JavaScript/TypeScript teamk6 for load testing
Python teamLocust for load testing
Need CI thresholdsk6 (built-in threshold support)
Need distributed testingLocust (built-in distributed mode)
Slow test suitepytest-xdist with -n auto
Flaky parallel tests--dist loadscope for fixture grouping
DB-heavy testsWorker-isolated databases with worker_id

Related Skills

  • ork:testing-unit — Unit testing patterns, pytest fixtures
  • ork:testing-e2e — End-to-end performance testing with Playwright
  • ork:performance — Core Web Vitals and optimization patterns
Stats
Parent Repo Stars128
Parent Repo Forks14
Last CommitMar 15, 2026