httpリクエストを投げまくれるRuby製のCLIツール作ってみました

Rubyでサブコマンド付きのコマンドを簡単に書けるThorを見て勉強がてらに作ってみました。

コマンドラインから指定したURLやPORTに任意のデータをつけてGET POST PUT DELETEを指定回数分投げることができるGemを作りました。
負荷をかけたい時とか、APIで同一のコンテンツを複数作成する時とかというニッチなユースケースに使うといいんではないでしょうか。

rubyはthreadプログラムを書いても、ネイティブスレッドの実行は一つという状態になってしまうようなので。
いい感じに並列処理を実行してくれるparallelというGemを使っています。

Rubyで並列実行処理を簡単に書く

使い方です。

インストール

1
gem install http_machinegun

使ってみる

1
2
3
4
5
# 一回だけgetリクエスト発行
http_machinegun fire -u http://localhost

# 80番ポートにabcdeという文字列のpostリクエストを10回とばす
http_machinegun fire -u http://localhost -p 80 -t 10  -d abcde

特に実際に使う場面があって作ったわけではないので、抜けとか多いかもしれません。
改善ポイントとか教えてもらえると嬉しいです。
あと出力される内容に微妙に変な改行が入ってしまうのは何故だろうorz

ソースはこちら
YoshitsuguFujii/http _machinegun ? GitHub

Comments