Loading...
Loading...
Pruebas de carga y rendimiento para validar el SLO de 8 segundos antes de cada release
npx skill4agent add davidcastagnetoa/skills locust_load_testingpip install locustload_tests/locustfile.pyfrom locust import HttpUser, task, between
import base64, os
SAMPLE_SELFIE = base64.b64encode(open("tests/fixtures/sample_selfie.jpg", "rb").read()).decode()
SAMPLE_DOC = base64.b64encode(open("tests/fixtures/sample_passport.jpg", "rb").read()).decode()
class KYCUser(HttpUser):
wait_time = between(1, 3)
@task
def verify_identity(self):
response = self.client.post("/v1/verify", json={
"selfie_b64": SAMPLE_SELFIE,
"document_b64": SAMPLE_DOC,
"document_type": "passport",
}, headers={"Authorization": f"Bearer {os.environ['TEST_JWT']}"})
assert response.elapsed.total_seconds() < 8, f"SLO violated: {response.elapsed.total_seconds()}s"locust -f load_tests/locustfile.py --host=https://staging.kyc.company.com --users=50 --spawn-rate=5 --run-time=5m --headless--html=load-test-report.html