Moco 0.9.1 发布,模拟服务器

dreamhead
 dreamhead
发布于 2014年02月02日
收藏 24

我很高兴地宣布,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的脚本。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Moco 0.9.1 发布,模拟服务器
加载中

最新评论(6

dreamhead
dreamhead

引用来自“chong子”的评论

代码git下来后,不知道如何跑起来,好像少了一些需要的jar包。。。

Moco的用法有很多种,你可以参考下面的文档。
https://github.com/dreamhead/moco/blob/master/moco-doc/usage.md

如果你是希望本地构建,clone源码之后,可以采用
./gradlew build
chong子
chong子
代码git下来后,不知道如何跑起来,好像少了一些需要的jar包。。。
dreamhead
dreamhead

引用来自“zzuqiang”的评论

不知道如何使用,能有一个简单的HelloWorld也行!谢谢!

我才意识到在OSChina上做介绍没有直接提供Moco的地址,在Moco的网站上有相关的文档,HelloWorld也有。欢迎使用!
https://github.com/dreamhead/moco
zzuqiang
zzuqiang
不知道如何使用,能有一个简单的HelloWorld也行!谢谢!
dreamhead
dreamhead

引用来自“翟志军”的评论

这个库真心不错,如果文档能再详细一些就更好了。

你觉得文档需要怎样改进呢?可以给一些反馈吗?
翟志军
翟志军
这个库真心不错,如果文档能再详细一些就更好了。
返回顶部
顶部