Hurl

Hurl

C'EST QUOI ?

Hurl est un outil en ligne de commande qui permet d'exécuter des requêtes HTTP définies dans un format texte simple et lisible. Là où curl s'arrête à l'exécution de requêtes, Hurl ajoute une couche complète d'assertions et de chaînage qui en fait un outil de test HTTP redoutable.

POURQUOI C'EST INTÉRESSANT ?

  • Format texte lisible : Les fichiers .hurl sont simples à lire, écrire et versionner dans Git
  • Assertions intégrées : Vérifier les status codes, headers, body, JSONPath, XPath directement
  • Chaînage de requêtes : Capturer des valeurs d'une réponse pour les réutiliser dans la suivante
  • CI/CD ready : Sortie JSON, rapport HTML, codes de retour exploitables
  • Performance : Écrit en Rust, exécution rapide même sur de grosses suites de tests

EXEMPLE RAPIDE

# Tester un endpoint d'API
GET https://api.example.com/users
HTTP 200
[Asserts]
header "Content-Type" contains "json"
jsonpath "$.users" count > 0

# Créer un utilisateur et vérifier la réponse
POST https://api.example.com/users
{
    "name": "z29k",
    "role": "admin"
}
HTTP 201
[Captures]
user_id: jsonpath "$.id"

# Utiliser l'ID capturé
GET https://api.example.com/users/{{user_id}}
HTTP 200
[Asserts]
jsonpath "$.name" == "z29k"

CAS D'USAGE

  • Tests d'intégration d'API REST/GraphQL
  • Smoke tests en CI/CD
  • Documentation vivante d'endpoints
  • Remplacement de collections Postman versionnables
  • Tests de non-régression HTTP

INSTALLATION

# macOS
brew install hurl

# Cargo
cargo install hurl

# Docker
docker run --rm -v /tmp:/tmp ghcr.io/nickel-org/hurl:latest

VERDICT

Hurl comble le vide entre curl (trop basique pour les tests) et les suites complètes comme Postman (trop lourdes). Son format texte en fait un citoyen de première classe dans un workflow Git. Indispensable pour tout développeur backend.