mike-neckのブログ

Java or Groovy or Swift or Golang

HTTP のテストをおこなう CLI ツールの httpmon をリリースした

HTTP のテスト・モニタリングを行う CLI ツール httpmon の v0.2.0 をリリースしました。とはいっても、 github のリリースページ に実行形式のファイルが置いてあるだけです。

README.md に書いてあるとおりですが、 ターミナルで http のテストをするだけです。現在のところ GET とPOST を送信できますが、 body は送信できないので、実質 GET 専用です。

レポジトリーはこちらです

github.com


使い方

テストしたい対象のサービスの URL を httpmon のパラメーターに指定するだけです

$ httpmon [サービスの URL]

f:id:mike_neck:20200308200420p:plain


オプション

現在のところ、テストできる項目は以下の 3 項目だけです

  • ステータス
  • レスポンスタイム
  • ヘッダー
    • 名前と値の一致

ステータス

ステータスを指定する場合は、オプションに -status または --status または -s をつけます

$ httpmon -status [期待するステータスコード] [サービスのURL]

f:id:mike_neck:20200308202730p:plain

レスポンスタイム

レスポンスタイムを指定する場合は -response-time を指定します。タイムの指定書式は numberUNIT のような形式で、 UNIT には s(秒)または m(分) を指定します。 なお、時間のかかるリソースだとクライアントのタイムアウトがかかってしまうので、タイムアウト設定を行うことをおすすめします。

タイムアウトの設定はオプション -timeout で指定します。タイムの指定書式はレスポンスタイムと同じです。

$ # この例では 5 秒のレスポンスタイムを設定します
$ httpmon -response-time 5s -timeout 10s [サービスの URL]

f:id:mike_neck:20200308203533p:plain

なお、タイムの指定書式はもしかしたら変更するかもしれません…

ヘッダー

ヘッダーのテストでは、指定した名前のヘッダーが含まれており、その値が指定した値になっているということをテストします。 指定は -expect-header で指定し、 [header-name]=[header-value] という書式で行います。

なお、送信時に送信するヘッダーは -request-header オプションで指定できます。こちらの書式も -expect-header と同じ書式です

$ httpmon \
    -expect-header content-type=application/json \
    -request-header accept=application/json \
    [サービスのURL]

f:id:mike_neck:20200308204855p:plain


以上