cucumber-nagios で監視する


こんにちは、鈴木です。

 

cucumber-nagios というライブラリが気になっていたので、試してみました。

cucumber-nagios を使用すると、Cucumber でのテスト結果を Nagios のフォーマットで出力することができます。

単なる疎通確認ではなく、「ユーザ操作を想定したシナリオが実行できること(Cucumber のテストが通ること)」を Nagios で監視することができます。

 

インストール時に発生した問題

インストール時にいくつか問題が発生し、試行錯誤を行いましたので、先にまとめておきます。

  • Ruby1.9 では bundler のバージョンが合わずに動作しなかった
    cucumber-nagios が依存する bundler のバージョンが古かったため、Ruby1.9 にインストールされていた bundler とバージョンが合わず、「bundle install」するときにエラーとなってしまいました。bundler を古いバージョンに差し替えれば動かすことはできるかもしれませんが、同じマシンの他のプロジェクトに影響があるかもしれないため、今回は Ruby1.8 の環境で試しました。
  • cucumber-nagios-0.9.2 は cucumber-1.2.1 では動作しない
    cucumber-1.1.9 を明示的にインストールしなおしました。

 

cucumber-nagios のインストール

上記のインストール時に発生した問題を踏まえて、インストールを行います。

まず、Ruby1.8 に切り替えます。

rvm を使用している場合は、以下のように変更します(こういう場合に rvm などのツールを利用していると便利ですね)。

cucumber と cucumber-nagios をインストールします。

「インストール時に発生した問題」で述べましたが、バージョンの組みわせによっては動作しないので、上記のように明示的にバージョンを指定してインストールします。

※cucumber-nagios のバージョンが上がった場合は、改めて cucumber と cucumber-nagios の最新バージョン同士の組み合わせで動作するか確認したほうが良いです。

ここまででインストールは完了です。

 

プロジェクトの作成

cucumber-nagios をインストールすると、cucumber-nagios-gen というコマンドが使用できるようになります。

cucumber-nagios-gen の使い方は、大きく分けて 2 通りあります。

一つは独立したプロジェクトを作成する機能で、既存のプロジェクトとは切り離したい場合に使用します。

もうひとつはテストケース (feature) を作成する機能で、既存のプロジェクトにテストコードだけ追加したい場合に使用します。

それぞれ、以下のようにコマンドの 1 つ目の引数で指定します。

今回は独立したプロジェクトとして作成します(監視用サーバにアプリケーションのプロジェクトをデプロイしない場合が多いはずなので)。

監視対象は何でも良いのですが、Techscore を監視するためのプロジェクトを作成します。

www.techscore.com というディレクトリが作成されるので、その中に移動します。

ディレクトリ内は以下のようになっています。

本来はここで「bundle install」したいところですが、バージョンの組み合わせの問題があるので、Gemfile を以下の内容に変更します。

それでは「bundle install」します。

次に、テストケース(feature)を作成します。

前述した「cucumber-nagios-gen feature ...」で生成します。

features/techscore.com/techscore.feature を開くと、以下のように書かれています。

自動生成されたものですが、「http://www.techscore.com へのリクエストが成功すること」のテストです。

テストを実行してみましょう。

Techscore がダウンしていなければ、上記のように「CUCUMBER OK ...」という出力が得られるはずです。

これで Cucumber でのテスト結果を Nagios で監視できますね。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です