天天看点

java接口自动化(四):Mock接口框架的使用

Mock基本介绍

mock就是对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建的方法。项目开发和测试过程中,遇到以下的情况时,就需要模拟结果返回。

1. 当另一方接口或服务还未完成,阻碍项目进度时,可以通过mock的方式,实现并行开发。

2. 另一方接口不稳定,而这边需要一个稳定的结果才能继续往下走流程时,也可以使用mock。有时候自动化测需要一个持续稳定的环境,也可以对不是很重要的服务进行mock处理。

3. 需要模拟异常情况,但是这种异常不容易触发时,可以使用mock实现。

Moco框架基本介绍

Moco的原理是应用于stub开发的,也就是桩代码(大概理解的意思就是用来代替某些代码的代码,这个不做深入的研究)。

Moco原理简介:Moco会根据一些配置,启动一个真正的HTTP服务(会监听本地的某个端口)。当发起请求满足一个条件时,它就给回复一个应答。Moco的底层没有依赖于像Servlet这样的重型框架,而是基于一个叫Netty网络应用框架直接编写的,这样一来,绕过了复杂的应用服务器,速度会很快

Moco框架的基本使用

moco框架是github上的一个开源项目,可以把这个项目源码拿下来使用 gradle编译为一个jar,也可以网上直接找 jar 包下载。 地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.10.0/ 可以自己找一个版本下载

java接口自动化(四):Mock接口框架的使用

也可以使用Maven导入jar包

<!-- 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>

           

如果是直接导入jar包的话启动mock命令如下:

java -jar ./moco-runner-0.10.0-standalone.jar http -p 8080 -c api.json
           

采用maven导入的包启动mock如下

import com.github.dreamhead.moco.bootstrap.Bootstrap;

public  class test {
    //http -p 8080 -c api.json
    public static void main(String[] args) {
        (new Bootstrap()).run(new String[]{"http","-p","8080","-c","H:\\work\\TestNG_Maven\\src\\Mock/api.json"});
    }
}
           

两种方式都可以启动Mock然后通过浏览器直接访问我们的接口

java接口自动化(四):Mock接口框架的使用