2012-12-12 17 views
10

"Amazon EC2"エンドポイントを実装しているオープンソースパッケージはありますか?具体的には、EC2と対話するクライアント(特にbotoを使用)に対してテストするために使用できるものは何ですか?テスト用EC2エンドポイントの偽装

EC2 API(例えばOpenStack、Eucalyptus、CloudStack)を実装しているオープンソースのクラウドソリューションがいくつかありますが、偽のEC2サーバーを素早く立ち上げて設定できるものを探していますテスト目的のために缶詰の応答を持つ。

+1

これはEC2固有ではないので、*正確に答えはありませんが、Rubyでは[webmock](https://github.com/bblimke/webmock)を使用して解決します。アプリケーションから作成されたHTTPリクエストを傍受し、テストスイートが任意の応答を返すことを可能にするツール。 Pythonには[HTTPretty](http://falcao.it/HTTPretty/)があり、同様の動作をします。 – willglynn

+0

@willglynn私はスタンドアロンのテストアプリを探しています。私のアプリの中で猿のパッチを当てるのではなくて。また、私はEC2 APIの再実装を他の誰かが利用できるようにすることを望んでいました。 –

+0

webmock/HTTPrettyを使用すると、何かを猿でパッチする必要はありません。アプリに関する限り、リモートエンドポイントと話しています。すべてのハッカーはアップストリームライブラリ内で発生しますが、どのような要求にどのような応答を受け取るべきかを指定するだけです。 Rubyには[VCR](http://www.rubyinside.com/vcr-a-recorder-for-all-your-tests-http-interactions-4169.html)もあります。これにより、簡単に対話を記録したり再生したりすることができますテストスイート内のリモートAPI – willglynn

答えて

7

motoをチェックしてみてください。基本的に、HTTPrettyを使ってboto自体をモックしてHTTP層をモックします。そのうまくやって、本当に便利なようです。

1

Eucalyptusは、http://www.eucalyptus.com/eucalyptus-cloud/community-cloudで自由に入手できるコミュニティクラウドを長年にわたって実行しています。異なるEC2 APIレスポンスを模倣したい場合はうまくいきません(また、Eucalyptus APIは、 EC2 APIに完全に従う、特に異なるフィールドを設定する方法など) - 実際のEC2レスポンスで実際にテストしたい場合は、Botoへの呼び出しをうまく模倣したほうが良いと思われます。