概要
Hurl は、シンプルなテキスト形式でHTTPリクエストを定義・実行できる CLIツール。 APIテストやデータ取得、パフォーマンス検証など多用途に対応。 REST/GraphQL/SOAP/HTML/XML/JSON など幅広いAPI形式をサポート。 チェーンリクエスト、値のキャプチャ、レスポンスの検証が可能。 CI/CD統合・レポート出力 も容易な軽量ツール。
Hurlとは何か
- コマンドラインツール でHTTPリクエストを実行
- シンプルなテキストファイル でリクエストを定義
- リクエストの連携 や 値のキャプチャ、 レスポンス検証 機能
- HTML、REST、SOAP、GraphQL、XML、JSON など多様なAPIに対応
- データ取得 ・ HTTPセッションテスト 両方に利用可能
基本的な使い方
-
GET/POST/PUT/HEAD など各種HTTPメソッドに対応
-
テキストファイル(例:sample.hurl)でリクエスト内容を記述
-
$ hurl sample.hurlで実行、--testでテスト出力 -
複数リクエストのチェーン 実行が簡単
-
[Captures] で値を取得し、次のリクエストに利用
- 例:CSRFトークンの取得と利用
レスポンス検証とアサート
- HTTPステータス、ヘッダー、ボディ の検証
- XPath/JSONPath によるボディ検証
- 正規表現 や 値の件数、 型 のチェック
- Set-Cookie属性 や バイト列のSHA256 検証も可能
- パフォーマンステスト (レスポンス時間の検証)
多様なデータ送信
- クエリパラメータ や HTTPヘッダー の設定
- Basic認証 や フォームデータ、マルチパートデータ 送信
- JSON/XML/GraphQL のボディ送信、テンプレート変数の利用
- ダイナミックデータ (UUIDや日付)の生成
CI/CD・レポート機能
- JUnit/TAP/HTML/JSON 形式のレポート出力
- 単一バイナリ でインストール容易、依存ランタイム不要
- libcurl ベースで高速・高信頼性
- Docker/npx/各種パッケージマネージャ対応 で導入簡単
Hurlの特徴・メリット
- テキスト形式 で開発者・運用者双方に直感的
- 高速CLI でローカル開発・CI統合に最適
- Rust製の軽量バイナリ、ランタイム不要
- curlのパワー を活かしつつ、テスト・自動化に特化
- IPv6/HTTP3 対応
サンプル・ユースケース
- GET/POST/PUT/HEAD リクエストの記述例
- ヘッダー/クエリ/認証/データ送信 の各サンプル
- 値のキャプチャとリクエスト間の受け渡し
- JSON/XML/GraphQL ボディのテンプレート利用
- レスポンス検証 や パフォーマンステスト の記述例
- ファイル/ディレクトリ単位 でのテスト実行
インストール方法
- Linux/macOS/Windows 各種パッケージ・バイナリ配布
- Homebrew/Chocolatey/Scoop/Docker/npm など幅広い対応
- Cargo/conda-forge/ビルド手順 も用意
まとめ
- Hurl はHTTPリクエストの自動化・テストに最適なCLIツール
- シンプルな記法 でAPIテストやデータ取得・検証が可能
- CI/CD統合 や レポート出力 も充実
- curl互換の信頼性・速度 と Rustの安全性 を両立
- 公式ドキュメントやGitHub で詳細情報・サンプル入手可能
参考リソース
- 公式サイト、 GitHub、 ドキュメント(HTML/PDF/Markdown)
- サンプル集、 インストールガイド、 チュートリアル
- フィードバック や バグ報告 はGitHubで受付