Amazon S3独立存根服务器

问题描述 投票:16回答:7

我似乎记得读过有关与Amazon S3兼容的测试服务器,您可以在自己的服务器上运行以进行单元测试或其他任何操作。但是,我刚刚用谷歌和AWS来耐心等待这一点。这样的事情存在吗?如果没有,我想我会写一个。

注意:我问的是Amazon S3(存储系统)而不是Amazon EC2(云计算)。

unit-testing amazon-s3 amazon-web-services stub
7个回答
6
投票

你在想Park Place吗?

仅供参考,它的old home page现在离线。


4
投票

我认为moto(qazxsw poi)是您进行单元测试的完美工具。 Moto模拟对S3,SQS等的所有访问,并且可以使用他们的Web服务器在任何编程语言中使用。

设置,轻量级和快速是微不足道的。

从moto的自述文件:

想象一下,您有以下要测试的代码:

https://github.com/spulec/moto

花一点时间思考过去你将如何测试它。现在看看如何用Moto测试它:

import boto
from boto.s3.key import Key

class MyModel(object):
    def __init__(self, name, value):
        self.name = name
        self.value = value

    def save(self):
        conn = boto.connect_s3()
        bucket = conn.get_bucket('mybucket')
        k = Key(bucket)
        k.key = self.name
        k.set_contents_from_string(self.value)

2
投票

Park Place已搬到github:import boto from moto import mock_s3 from mymodule import MyModel @mock_s3 def test_my_model_save(): model_instance = MyModel('steve', 'is awesome') model_instance.save() conn = boto.connect_s3() assert conn.get_bucket('mybucket').get_key('steve') == 'is awesome'


1
投票

http://github.com/technoweenie/parkplace Eucalyptus

EUCALYPTUS - 用于将您的程序链接到有用系统的弹性公用计算架构 - 是一个用于在集群上实现“云计算”的开源软件基础架构。 EUCALYPTUS的当前接口与Amazon的EC2接口兼容,但该基础架构旨在支持多个客户端接口。

请注意,根据文档,Eucalypus不仅包括EC2接口的重新实现,还包括S3存储系统的重新实现。该存储组件称为Walrus。 (http://eucalyptus.cs.ucsb.edu/


1
投票

http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2似乎是S3的最新重新实现,专门用于测试。


1
投票

我们遇到了在本地测试基于S3的代码的问题,并实际实现了一个小型Java服务器,它模拟了S3对象API。由于它可能对其他人有用,我们设置了一个github repo以及一个小网站:Fake S3 - MIT许可下的所有OpenSource。

它非常小巧,可以在几分钟内完成设置。 (作为基于http://s3ninja.net的应用程序,中等服务器上的statup只需不到一秒钟)。


-3
投票

亚马逊使用Xen,因此您可以在自己的Xen安装中运行AMI。我只是启动一个实例并在那里运行测试。它的成本并不高,你通常可以在本地开发并且不经常在他们的系统上进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.