• 2014-12-03

    Moco 0.10.0发布

    Tag:moco

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

    前版信息:Moco 0.9.2发布

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

    Moco是什么?

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

    变更

    本次发布最大的变更是加入了Socket的支持。

    除了HTTP,Socket是另一种常见的集成方式,对Socket的支持让Moco能够更为全面地对集成进行支持。创建一个Socket的服务器,可以采用socketServer:

      final SocketServer server = socketServer(12306);

    与HTTP支持类似,Socket服务器也是需要设定请求以及对应的应答:

      server.request(by("foo")).response("bar");

    与HTTP本身支持很多参数不同,Socket只支持与内容相关的部分,比如,text、file、xml、json、match、exist、latency、template等等。更多细节,请参见Socket API的文档

    因为增加了不同的服务器类型,Moco独立服务器的启动参数也有所调整,原来的一个start已经不足以满足需要了。在最新的版本中,你可以根据服务类型记性启动,比如,启动一个Socket服务器的方式如下:

      java -jar moco-runner--standalone.jar socket -p 12306 -c foo.json 

    HTTP和HTTPS服务器的启动参数分别对应着http和https,为了兼容原有版本,start依然得到保留,但不确定未来是否会长期存在下去。

    这个版本增加了一个许多人要求的新特性,在Java代码中可以使用JSON配置文件。这种用法与Moco设计JSON API的初衷有很大差别,但在实际的使用中,确实有很多人这么用,所以,在这个版本里提供了一个更简洁的API,不过,这个API存在于Moco Runner包中:

      jsonHttpServer(12306, file("foo.json"));

    在API方面,

    • 增加attachment API,直接对下载附件提供支持。
    • 增加了template提取器的支持,比如,如下代码就会从请求中提取内容作为应答返回值。
        server.response(template("${foo}", "foo", jsonPath("$.book.price")));

    在Moco独立服务器和shell版本,增加了版本查询功能,以便对一些外部工具进行支持。

    另外,由于JSON Path底层实现的升级,可能会引入一些破坏性的变化,如果你用到JSON Path API,请注意。

    更多发布相关信息,请参考Release Notes

    感谢

    感谢Alex Soto,提供Moco服务关闭的解决方案,增强了Moco服务器的稳定性。
    感谢方志刚,提供Moco的Shell版本在Cygwin下运行的支持。

    分享到:
    引用地址: