我很高兴地宣布,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下运行的支持。 模拟服务器 Moco 0.10.0 发布下载地址