skills/load-testing-python/SKILL.md
Load test Python FastAPI/Flask APIs using Locust (Python-native) and k6. Covers HttpUser design, task sets, custom load shapes, distributed mode, event hooks, pip/Poetry setup, and CI/CD pipelines. Use when: writing load tests in Python with Locust, testing FastAPI or Flask endpoints under load, running distributed load tests, or comparing Locust vs k6 for a Python project.
npx skillsauth add congiuluc/my-awesome-copilot load-testing-pythonInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
load-testing skill)| Criteria | Locust | k6 | |----------|--------|-----| | Language | Python | JavaScript | | Best for | Python teams, custom shapes | Cross-team, CI/CD gates | | Protocol | HTTP (native), custom via plugins | HTTP, WebSocket, gRPC | | Distributed | Built-in master/worker | k6 Cloud or xk6-distributed | | Reports | Web UI (real-time), CSV, JSON | Console, JSON, Prometheus | | Load shapes | Python classes (full control) | Scenarios + executors | | Data feeds | Python generators, CSV, DB | SharedArray, JSON |
Recommendation: Use Locust for Python teams that want pure-Python test code, real-time Web UI, and custom load shapes. Use k6 for quick CI/CD pipeline smoke tests.
pip install locustlocust -f locustfile.py --host http://localhost:8000http://localhost:8089 to configure and start testlocust --headless -u 50 -r 10 -t 2mload-testing skill) or headless Locustpip install locust
poetry add --group dev locust
# requirements-loadtest.txt
locust>=2.29
tests/
load/
locustfile.py # Main Locust test file
users/
product_user.py # Product API user
auth_user.py # Authenticated user flow
shapes/
step_load.py # Custom step load shape
spike_load.py # Custom spike load shape
data/
products.csv # Test data feeder
locust.conf # Default Locust configuration
# locust.conf
locustfile = tests/load/locustfile.py
host = http://localhost:8000
users = 50
spawn-rate = 10
run-time = 2m
headless = false
csv = reports/results
html = reports/report.html
locust \
--headless \
--users 50 \
--spawn-rate 10 \
--run-time 2m \
--host http://localhost:8000 \
--csv reports/results \
--html reports/report.html \
--exit-code-on-error 1
# Start master
locust --master
# Start workers (on same or different machines)
locust --worker --master-host=<master-ip>
- name: Install Locust
run: pip install locust
- name: Run load tests (headless)
run: |
locust \
--headless \
--users 20 \
--spawn-rate 5 \
--run-time 1m \
--host ${{ env.API_URL }} \
--csv reports/results \
--html reports/report.html \
--exit-code-on-error 1
- name: Upload Locust report
uses: actions/upload-artifact@v4
if: always()
with:
name: locust-report
path: reports/
tools
Build VS Code extensions with TypeScript. Covers extension anatomy, activation events, commands, tree views, webview panels, language features, testing, and publishing. Use when: creating a new VS Code extension, adding commands/views/providers, building webview UIs, implementing language server features, testing extensions, or packaging for the marketplace.
development
Track implementations, features, bugs, and releases in a versioning document. Use when: adding a commit, completing a feature, fixing a bug, or preparing a release. Automatically updates CHANGELOG.md following Keep a Changelog format and Semantic Versioning.
development
Write frontend tests using Vitest and React Testing Library. Use when: testing React components, hooks, user interactions, form submissions, accessibility assertions, or mocking API services.
development
Write Angular frontend tests using Jasmine, Karma, and Angular TestBed. Use when: testing Angular components, services, pipes, directives, user interactions, form submissions, accessibility assertions, or mocking HTTP services.