外部システムスタブ「Subuta」(導入編)


はじめに

システム開発していると、HTTPで外部のシステムにリクエストしたり、FTPでファイルのやりとりなどをする機能を作ったりします。
単体試験ではこういった外部のシステムの代わりにスタブを使ったりするんですが、固定なレスポンスを返すぐらいだったらいいんですが、リクエストデータ毎にスタブのレスポンスを変えたいとかいう要望があるわけです。
そういうことは外結で試験すればいいじゃない、とかいう意見もあるのですがその対向システムにテストデータを作成できないとか申請が面倒とかあるわけです。基幹系なシステムとかだと。

作ってみた

そういうわけで、リクエストデータ毎にレスポンスデータを自由に変えるようなスタブを作ってみました。その名も「Subuta(すぶた)」です。
https://sites.google.com/site/subutapj/

オープンソースというわけでもなくGitにあげているわけでは無いのですが、いちおうソースはダウンロードできるので、ソースオープンソフトという感じでしょうか。

できること

・REST
・FTPサーバ
・SMTPサーバ
機能を持っています。FTPとSMTPは単純にサーバとしてです。FTP、SMTPの試験を行うのにいちいちFTPサーバなどをインストールするのは面倒なので実装しました。しかしながら、サーバ以上の機能は持っていません。
Subutaのメイン機能はRESTの方で、上記のとおり、リクエスト毎にレスポンスを変更することが可能です。

インストール

SubutaはJavaのWEBアプリですので、WARで配布しています。
こちらからダウンロードしてください。
https://sites.google.com/site/subutapj/subuta

Tomcat環境があれば動きます。%TOMCAT_HOME%/webapps配下にWARを配置してTomcatを起動しておしまいです。
http://[IP]:[PORT]/subuta
にアクセスしてみてください。↓のような画面が表示されるはずです。

はい。これで前準備は完了です。

Dependencies

・Java7以降
・Tomcat6以降
単にこれ以前のバージョンは動作確認していないだけなので、これ以外でも動くかもしれません。
DBはSQLite使っています。

その他

SQLiteファイルやSubutaが生成するファイルは%TOMCAT_HOME%配下に出力されます。subutaはたまに更新されますが、基本的には下位互換でWARを置き換えるだけでバージョンアップ可能です。

次回はAPIの作り方を説明します。