2012-12-12 67 views
10

是否有一個開源軟件包可以實現「假亞馬遜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,您不必對任何東西進行猴子補丁 - 就您的應用而言,您正在與遠程端點通話。所有hackery都發生在上游庫中,您只需指定哪些請求應該接收哪些響應。 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

桉樹已經運行了多年的社區雲,可在http://www.eucalyptus.com/eucalyptus-cloud/community-cloud免費獲得 - 如果您想要模擬出不同的EC2 API響應,則無法正常工作(並且需要注意的一點是,Eucalyptus API不會運行) t完全遵循EC2 API,特別是在他們如何設置不同領域) - 嘲笑你對Boto的呼叫似乎是最好的選擇,如果你真的想用真正的EC2響應測試