• 2014-02-01

    Moco 0.9.1发布

    Tag:Moco

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/255406345.html

    前版信息:Moco 0.9发布

    我很高兴地宣布,Moco 0.9.1发布了。

    Moco是什么?

    Moco是一个可以轻松搭建测试服务器的框架/工具/程序库。

    变更

    按照版本号来说,这是一个小的修复版本,但实际的修改一点都不少。

    首先,这个版本增加了runner API,让我们可以自己在测试代码里控制Moco服务器的启停。最常见的做法是在集成测试的最初,启动一个服务器,结束之后关闭,下面是一个例子:

    @Before
    public void setup() {
       HttpServer server = httpserver(port());
       server.response("foo");
       runner = runner(server);
       runner.start();
    }

    @After
    public void tearDown() {
       runner.stop();
    }

    在配置API方面,增加了对proxy的批处理方法,我们可以一次性的代理一组URL,比如:

    server.proxy(from("/proxy").to("http://remoteUrl/target"));

    proxy还增加了一个playback的配置,它也是用来在本地存储远程服务器的内容,与failover不同的是,当本地内容可用时,它就不再访问远程服务器,换言之,它是本地优先的。

    server.request(by(uri("/proxy_playback")))
         .response(proxy("http://remoteUrl/target"), playback(path-to-local-playback)));

    这次的发布对模板也进行了改进,增加了对模板变量的支持,你可以根据自己的需要定制模板内容:

    server.request(by(uri("/template"))).response(template("${var}", "var", "TEMPLATE"));

    这次发布还增加了一个全局配置选项:Response。它的作用是,给所有的应答添加一个同样的内容,比如HTTP头。它主要用于独立运行模式,模拟很多类似的请求:

    [
       {
           "response" : {
               "headers" : {
                   "foo" : "bar"
               }
           },
           "include": "src/test/resources/settings/foo.json"
       }
    ]

    本次发布修正了Moco存在的一些问题,比如HTTP连接关闭,内容验证,服务器完全关闭等问题,让Moco的质量更上了一个台阶。本次发布还有一个重大的调整,采用Proguard将Standalone的JAR规模大幅度缩小,上一次发布Moco的Standalone包有8M多,而这次只有不到5M。

    更多的细节请参考ReleaseNotes

    感谢

    感谢崔鹏飞,协助发现修复了HTTP连接关闭的问题。

    感谢黄云坤,实现Proguard压缩Standalone JAR包。

    感谢Marcin Grzejszczak,协助发现并修复了服务器完全关闭的问题,并贡献了gmoco的脚本。

    分享到:
    引用地址: