moco 响应信息从 外部文件读取demo

Posted wangzhiqiang004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了moco 响应信息从 外部文件读取demo相关的知识,希望对你有一定的参考价值。


package mocker;
import java.io.IOException;
import java.nio.charset.Charset;


import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.fluent.Content;
import org.apache.http.client.fluent.Request;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;


import com.github.dreamhead.moco.HttpServer;
import com.github.dreamhead.moco.Moco;
import com.github.dreamhead.moco.MocoJsonRunner;
import com.github.dreamhead.moco.Runner;
import com.github.dreamhead.moco.resource.ContentResource;
public class MocoJsonHttpRunnerTest {
//用runner来管理服务器的开关,这个runner 对象是用Runner.runner(Server server) 来实例化的
private Runner runner;


@BeforeTest
public void setUp() throws Exception{
//定义一个Server 指定端口
ContentResource resource = Moco.file("src/test/resources/foo.json");

HttpServer server = MocoJsonRunner.jsonHttpServer(12306, resource);

//初始化runner对象
runner = Runner.runner(server);
//开启服务器
runner.start();


}

@Test
public void testRequset() throws ClientProtocolException, IOException{

Content content = Request.Get("http://localhost:12306").execute().returnContent();
System.out.println(content.asString(Charset.forName("UTF-8")));


}

@Test
public void testRequset1() throws ClientProtocolException, IOException{

Content content = Request.Get("http://localhost:12306").execute().returnContent();
System.out.println(content.asString(Charset.forName("UTF-8")));


}


@AfterTest
public void tearDown(){
//关闭服务器
runner.stop();

}
}

 

依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.java.mock</groupId>
  <artifactId>mocker</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.9.10</version>
    <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.github.dreamhead</groupId>
  <artifactId>moco-core</artifactId>
<!--   <version>1.0.0</version> -->
  <version>1.1.0</version>
</dependency>

 
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>fluent-hc</artifactId>
            <version>4.5</version>
        </dependency>
 
 
 
 
 
        <!-- https://mvnrepository.com/artifact/com.github.dreamhead/moco-runner -->
        <dependency>
            <groupId>com.github.dreamhead</groupId>
            <artifactId>moco-runner</artifactId>
          <version>1.1.0</version>
        </dependency>


    </dependencies>
<build>
<plugins>
  
<!--   确定jdk版本的编译插件 -->
         <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.5.1</version>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
                   <encoding>UTF-8</encoding>
               </configuration>
        </plugin>
        </plugins>
       
</build>

</project>

 

 

json文件

[
  {
    "response" :
      {
        "text" : "foo"
      }
  }
]

 

总结:从外部读取json文件作为响应,核心是用moco-runner依赖中的这个api MocoJsonRunner.jsonHttpServer(12306, resource),其余怎么发请求,怎么用runner来管理server,跟之前一样,么有什么特别的

以上是关于moco 响应信息从 外部文件读取demo的主要内容,如果未能解决你的问题,请参考以下文章

moco响应结果浏览器访问乱码

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

Moco模拟服务器实现请求&响应

阿波罗读取乐观响应的片段

Mock8 moco框架如何返回一个cookie信息

我无法从 android 的片段中读取活动中的数据库信息