Stack de Tests API
Bruno, Hoppscotch, Hurl, k6, Artillery, Locust — remplaçants open-source de Postman + JMeter, sans verrou SaaS.
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
.hurldans 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
stagesavec 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. Utilisezbru envet 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.
6 ressources prêtes à installer
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.
12 packs · 80+ ressources sélectionnées
Découvrez tous les packs curatés sur la page d'accueil
Retour à tous les packs