Volver a Learning
Performance Testing Skills
🦗
Skill
Claude Code
Performance Testing Skills
locust-best-practices
LocustPythonClaude CodeLoad TestingHTTP/RESTPerformance
Tabla de contenidos
rcampos09/performance-testing-skills
¿Qué es un Claude Code Skill?
🎯
Activación automática
🐍
Python nativo
📄
Archivos completos
Instalación
Requisitos del entorno
| Runtime | Versión mínima | Uso |
|---|---|---|
| Python | 3.8+ | Runtime principal para ejecutar los locustfiles |
| locust | latest | pip install locust |
Skills disponibles
LB
locust-best-practices
Se activa cuando mencionas:
Python 3.8+HTTP/RESTLoadTestShapeCustom Shapes
Cómo funciona en la práctica
1
Locustfile completo y ejecutable
2
El comando exacto para ejecutarlo
3
Justificación del wait_time elegido
El patrón de 4 bloques
01
Imports + Configuration
02
User Class (HttpUser)
03
Custom Load Shape (opcional)
04
Run Command
Los 7 errores críticos que el skill detecta
1
Missing catch_response=True
❌ Incorrecto
with self.client.get("/api/users") as r:
# 500 se reporta como éxito
# 500 se reporta como éxito
✅ Correcto
with self.client.get("/api/users",
catch_response=True) as r:
if r.status_code != 200:
r.failure(f"Got {r.status_code}")
catch_response=True) as r:
if r.status_code != 200:
r.failure(f"Got {r.status_code}")
2
URLs dinámicas sin name=
❌ Explosión de stats
self.client.get(f"/user/{user_id}")
✅ Stats agrupadas
self.client.get(
f"/user/{user_id}",
name="/user/[id]"
)
f"/user/{user_id}",
name="/user/[id]"
)
3
wait_time = constant(0)
❌ Carga irreal
wait_time = constant(0)
✅ Pacing realista
# usuario navegando:
wait_time = between(1, 5)
# RPS fija:
wait_time = constant_throughput(2)
wait_time = between(1, 5)
# RPS fija:
wait_time = constant_throughput(2)
4
Estado mutable compartido
5
CSV incompleto
6
Credenciales hardcodeadas
7
Validación solo de status code
Guía de wait_time
| wait_time | Modelo | Cuándo usarlo |
|---|---|---|
| between(1, 5) | Cerrado | Simular usuarios navegando con think time humano |
| constant_throughput(N) | Abierto | Mantener N tareas/segundo por VU (RPS fija) |
| constant(N) | Cerrado | Intervalo exacto entre requests (timing preciso) |
| constant(0) | ⚠️ Evitar | Genera carga irreal — 10-100× más de lo esperado |