Moco Runner

Moco Runner提供了API和独立程序运行两种方式,用于模拟HTTP服务器。API方式方便集成到测试中,独立程序运行则通过配置JSON文件定制请求和响应。本文详细介绍了如何使用Moco Runner,包括启动服务、配置JSON文件、处理不同请求类型和响应,以及代理、重定向和延迟响应等功能。
摘要由CSDN通过智能技术生成

Moco Runner


一、基本介绍
Moco runnner是一个基于netty实现的Http服务器模拟程序,他可以向服务器一样接受你的Http请求,并返回你所定制的响应,主要应用在单元测试和开发过程需要调用第三方接口当时第三方接口尚不可用的情况下使用。

二、快速使用
Moco主要有两种使用方式:API、单立程序单独启动。

1、API方式

 引入依赖:

        Maven:

       <dependency>
            <groupId>com.github.dreamhead</groupId>
            <artifactId>moco-core</artifactId>
            <version>1.0.0</version>
       </dependency>
       gradle:

      repositories {
           mavenCentral()
         }

        dependencies {
           testCompile(
           "com.github.dreamhead:moco-core:1.0.0",
        )
     }
API调用方式主要应用在单元测试中,以下是一个典型的应用在单元测试中的例子:

@Test
public void should_response_as_expected() throws Exception {
HttpServer server = httpServer(12306);
server.response(“foo”);

running(server, new Runnable() {
    @Override
    public void run() throws IOException {
        Content content = Request.Get("http://localhost:12306").execute().returnContent();
        assertThat(content.asString(), is("foo"));
    }
});

}
以上例子创建了一个新的服务器并且做了自定义配置,随后运行单元测试,使用Apache Http Client Fluent API去请求测试服务器。在某些情况可能需要去控制服务的开启和关闭,可以在Befor注解的方法中调用相关的API,样例如下:

public class MocoRunnerTest {
private Runner runner;

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

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

@Test
public void should_response_as_expected() throws IOException {
    Content content = Request.Get("http://localhost:12306").execute().returnContent();
    assertThat(content.asString(), is("foo"));
}

}
关于更多api的使用可以访问https://github.com/dreamhead/moco/tree/master/moco-doc去了解。

2、独立程序运行

首先需要下载这个程序的jar包http://central.maven.org/maven2/com/github/dreamhead/moco-runner/1.0.0/moco-runner-1.0.0-standalone.jar

像运行普通java程序一样只需要部署到服务器,执行java -jar命令就能启动,默认访问端口为12306。这种方式需要配置相应的json配置文件以达到自定有请求和响应,下面着重介绍使用方式和json配置。

在启动时就需要先配置一个JSON配置文件例子如下:

[
{
“response” :
{
“text” : “foo”
}
}
]
(foo.json)

首先要在命令启动的第一参数中指定服务器的类型,不同的服务器类型支持不同的参数:

HTTP Sever:

 可以通过以下命令开启一个Http服务器:

java -jar moco-runner--standalone.jar http -p 12306 -c foo.json
其中的 是当前执行jar包的版本,-p指定访问端口,-c 指定启动时的json配置

Socket Server:

 以下命令启动一个Socket server:

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

配置文件

 更改配置文件不必重启服务,服务会在热加载配置,自动检测配置的变更

 可以使用-c参数指定某一个json配置文件,如果有多个配置文件,可以使用全局匹配参数,但是要确保配置文件不冲突,命令如下:

java -jar moco-runner-<version>-standalone.jar http -p 12306 -c "*.json"

端口

 可以通过-p参数指定启动时的访问端口,如果没有指定端口,Moco启动时将会随机选择一个可用端口,可以在控制台看到端口信息。

全局设定
将所有的配置文件都放到一个配置文件里,但是如果想要运行很多服务在一个Moco实例时,配置文件就会变得很庞大,这种情况下,可以使用设定文件(setting.json)分离不同的文件。

下面是两个例子:

[
{
“request” : {
“uri” : “/foo”
},
“response” : {
“text” : “foo”
}
}
](foo.json)

{
“request” : {
“uri” : “/bar”
},
“response” : {
“text” : “bar”
}
}

把他们放到一个setting.json文件中及进行管理:

[
{
“include” : “foo.json”
},
{
“include” : “bar.json”
}
](setting.json)
可以使用全局设定启动一个Moco服务,命令如下:

java -jar moco-runner--standalone.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值