TOKREPO · ARSENAL
Stable

Stack de Tests API

Bruno, Hoppscotch, Hurl, k6, Artillery, Locust — remplaçants open-source de Postman + JMeter, sans verrou SaaS.

6 ressources

Ce que contient ce pack

Ce pack rassemble les six outils open-source qui ont remplacé Postman et JMeter dans les équipes d'ingénierie modernes. Les changements de prix de Postman et la sync cloud forcée depuis 2023 ont poussé beaucoup d'équipes hors de la plateforme ; JMeter marche encore mais ses scripts XML et son écosystème Java-only font mal à côté des alternatives JavaScript-natives. Le pack divise la surface en trois problèmes : exploration interactive, assertions CI, génération de charge.

# Ressource Rôle Particularité
1 Bruno Client interactif Fichiers .bru texte brut, collections versionnables git
2 Hoppscotch Client interactif Browser-first, auto-hébergeable, collaboration temps réel
3 Hurl Runner CI DSL texte brut, binaire unique, parfait pour Makefiles
4 k6 Tests de charge Scripting JavaScript, dashboards Grafana natifs
5 Artillery Tests de charge Scénarios YAML, charge navigateur via Playwright
6 Locust Tests de charge Tests Python purs, modèle distribué master-worker

Le triptyque client interactif + runner CI + générateur de charge couvre tout le cycle. Bruno ou Hoppscotch c'est là où vous cliquez en écrivant les endpoints. Hurl c'est ce qui tourne en CI pour confirmer que le contrat n'a pas dérivé. k6 / Artillery / Locust c'est ce qui tourne contre staging avant chaque release.

Pourquoi quitter Postman et JMeter

Trois forces ont convergé. Postman est devenu cloud-only par défaut en 2023 — les collections se synchronisent sur leurs serveurs, le partage exige des comptes, le tier gratuit a rétréci. L'UX de JMeter date de 2005 — configs XML, GUI-first, pas d'histoire de scripting agréable. CI exige la diffabilité — Postman exporte des blobs JSON qui produisent des diffs PR illisibles ; le .bru de Bruno et le texte brut de Hurl produisent des diffs lisibles que les reviewers peuvent auditer.

Au-delà de la migration, le pack open-source ajoute des capacités que Postman n'a jamais eues :

  • Lancer le même test de charge dans trois moteurs pour trianguler (k6 pour HTTP-heavy, Artillery pour les flux navigateur, Locust quand votre équipe Python veut rester en Python).
  • Les fichiers Hurl font office de documentation — collez un .hurl dans un runbook et tout ingé avec curl peut le lire.
  • Auto-hébergez Hoppscotch pour garder les données enterprise sur votre réseau — le tier enterprise de Postman facture par siège.

Installer en une commande

# Installe le pack entier dans le projet actuel
tokrepo install pack/api-testing-stack

# Ou choisissez des ressources individuelles
tokrepo install hurl
tokrepo install k6

Le TokRepo CLI écrit des squelettes de collection Bruno, un répertoire tests/api/*.hurl et un dossier loadtest/ avec templates pour k6, Artillery et Locust. Snippets CI GitHub Actions et GitLab CI inclus par ressource.

Pièges courants

  • Traiter les résultats k6 comme réalistes sans warm-up. k6 monte vite par défaut ; si vous démarrez à 1000 VUs, votre service passe les 30 premières secondes à remplir les caches et votre p99 paraît pire qu'il n'est. Utilisez stages avec une rampe 30-60s.
  • Assertions Hurl sur le texte du body. Assertez sur les paths JSON (jsonpath "$.user.id"), pas des sous-chaînes. Les comparaisons de texte échouent à tort quand votre sérialiseur change les espaces ou l'ordre des clés.
  • Partager des collections Bruno sans stratégie environments/. Bruno supporte des variables par environnement ; si vous committez des credentials directement dans les .bru, vous avez fuité des secrets dans git. Utilisez bru env et patterns .env.local.
  • Locust à très haut RPS sur une machine. Le GIL de Locust signifie qu'un process Python plafonne autour de 1k-2k RPS ; utilisez --master + plusieurs --worker, ou passez à k6 pour les scénarios >5k RPS.
  • Oublier d'enregistrer p99 à côté du throughput. Un test à 10k RPS avec p50=20ms est dénué de sens si p99=8s. Exportez toujours l'histogramme de latence, pas que la moyenne.

Relation aux autres packs

Ce pack s'apparie avec Orchestration de Workflows (lancer des tests de charge nocturnes via cron Inngest ou Prefect) et Générateurs Sites Statiques & Docs (publier des docs OpenAPI alignées avec ce que vos tests Hurl assertent — source unique de vérité entre docs et tests). Pour l'observabilité complète, ajoutez Charts & Data Viz pour rendre la sortie CSV de k6 via Apache ECharts ou Grafana.

INSTALLER · UNE COMMANDE
$ tokrepo install pack/api-testing-stack
passez-la à votre agent — ou collez-la dans votre terminal
Ce qu'il contient

6 ressources prêtes à installer

Script#01
Bruno — Open-Source IDE for API Exploration & Testing

Bruno is an open-source IDE for exploring and testing APIs — a lightweight, offline-first alternative to Postman and Insomnia. Stores collections as plain text files in your filesystem so they version-control naturally with Git.

by Script Depot·92 views
$ tokrepo install bruno-open-source-ide-api-exploration-testing-89ca3775
Agent#02
Hoppscotch — Open-Source API Development Platform

Test APIs with a beautiful UI. REST, GraphQL, WebSocket, SSE, and gRPC. Self-hostable Postman alternative. 78K+ GitHub stars.

by AI Open Source·101 views
$ tokrepo install hoppscotch-open-source-api-development-platform-1a83c479
Script#03
Hurl — Run and Test HTTP Requests with Plain Text

Hurl is a command-line tool that runs HTTP requests defined in a simple plain text format. Chain requests, capture values, assert responses, and use it for API testing in CI/CD. Written in Rust on top of libcurl for maximum compatibility.

by Script Depot·84 views
$ tokrepo install hurl-run-test-http-requests-plain-text-42405722
Script#04
k6 — Modern Load Testing Tool Using Go and JavaScript

k6 is a modern load testing tool built by Grafana Labs. Write test scripts in JavaScript, run them in a high-performance Go runtime. Developer-centric with CLI-first workflow, CI/CD integration, and Grafana Cloud for result analysis.

by Script Depot·92 views
$ tokrepo install k6-modern-load-testing-tool-using-go-javascript-4240522f
Config#05
Artillery — Modern Load Testing for HTTP, WebSocket & More

Node.js load testing toolkit with YAML scenarios covering HTTP, WebSocket, gRPC and Playwright, plus distributed runs on AWS Fargate.

by AI Open Source·89 views
$ tokrepo install artillery-modern-load-testing-http-websocket-more-729c7c2c
Config#06
Locust — Scalable Load Testing in Pure Python

Locust is an open-source load testing tool where you define user behavior in plain Python code. Distributed, scalable, and with a real-time web UI for monitoring. No DSL to learn — just write Python.

by AI Open Source·83 views
$ tokrepo install locust-scalable-load-testing-pure-python-42405496
FAQ

Questions fréquentes

Le pack est-il gratuit de bout en bout ?

Oui. Chaque outil est open source sous licence permissive (MIT, Apache 2.0, AGPL pour l'auto-hébergement Hoppscotch). k6 a un service payant Grafana Cloud k6 pour stockage géré des résultats, mais le binaire OSS lance des tests illimités en local ou en CI. Artillery a un tier pro payant avec rapport géré ; le CLI core est gratuit. Locust et Hurl sont inconditionnellement gratuits.

Comment ça se compare à Postman ?

Postman reste l'expérience la plus fluide pour la première exploration d'API grâce à son UX mature. Le pack open-source égale la parité fonctionnelle pour collections, environnements et scripts de test, avec deux gros avantages : fichiers texte qui difent proprement en code review, et auto-hébergement pour que les secrets ne sortent pas du réseau. Compromis : UX de collaboration moins mature, pas de monitoring API intégré (utilisez Workflow Orchestration à la place).

Ça fonctionnera avec Claude Code ou Cursor ?

Oui. Claude Code peut écrire des collections Bruno, tests Hurl et scripts k6 depuis une spec OpenAPI — les pages de ressource TokRepo incluent des prompts subagent. Workflow courant : donnez à Claude un openapi.yaml, demandez de générer tests/api/*.hurl couvrant chaque endpoint, puis lancez hurl --test tests/api/*.hurl en CI. Les utilisateurs Cursor obtiennent des règles équivalentes dans .cursor/rules/.

Quelle différence entre Bruno et Hoppscotch ?

Bruno est desktop-first, basé sur fichiers — les collections vivent sur votre disque comme .bru texte. Idéal pour petites équipes qui utilisent déjà git comme source de vérité. Hoppscotch est browser-first avec auto-hébergement optionnel, avec un modèle de collaboration temps réel plus riche — meilleur quand product managers et QA doivent voir les résultats des requests. La plupart choisissent l'un, mais les deux coexistent si vous migrez progressivement.

Piège opérationnel en lançant k6 en CI ?

k6 émet un exit code 0 même quand les thresholds échouent à moins de mettre --quiet=false et regarder stderr — ou mieux, utilisez thresholds avec abortOnFail: true par check. Beaucoup d'équipes livrent du CI vert qui a secrètement violé les SLOs p99 parce qu'elles ont fait confiance à l'exit code. Aussi : pipez le --out de k6 en JSON et archivez-le comme artefact CI pour comparer les runs dans le temps.

PLUS DANS L'ARSENAL

12 packs · 80+ ressources sélectionnées

Découvrez tous les packs curatés sur la page d'accueil

Retour à tous les packs