FunTester moco API 模拟框架视频讲解 (下)

FunTester · 2020年05月20日 · 830 次阅读

上期讲过了moco API 模拟框架视频讲解(上)moco API 模拟框架视频讲解(中),本期分享内容是mocoserver对象的创建和moco api的实践。

mocoserver比较简单,常用的参数基本portlogmonitor,其他的基本用不到。

moco API实践内容比较少,因为录制时间不够了,并未把所有的requestresponse演示完,有兴趣可以自己尝试一下,十分推荐。

moco API 模拟框架视频讲解(下)

点击观看视频

演示代码

package com.fun

import com.fun.base.bean.Result
import com.fun.moco.MocoServer
import com.github.dreamhead.moco.HttpServer

class DeleteNull extends MocoServer {


    public static void main(String[] args) {
        HttpServer server = getServer(8088, "1.log")

        server.get(urlMatcher("/abc+")).response("funtest")

        server.get(urlOnly("/ab")).response(obRes(Result.success(getJson("2323=3323"))))

        server.get(urlStartsWith("/test")).response(limit("fun", "tester", 3000))

        server.request(both(urlStartsWith("/te"), eqArgs("q", "fun"))).response(obRes(Result.success(getJson("name=fun"))))

        server.get(urlStartsWith("/error")).response(setStatus(404))

        server.response("haha")

        MocoServer drive = run(server)


        waitForKey("fan")

        drive.stop()
    }


}

MocoServer 代码


package com.fun.moco


import com.github.dreamhead.moco.HttpServer
import com.github.dreamhead.moco.MocoMonitor
import com.github.dreamhead.moco.MocoRequestHit
import com.github.dreamhead.moco.RequestHit
import com.github.dreamhead.moco.Runner

import static com.github.dreamhead.moco.Moco.httpServer
import static com.github.dreamhead.moco.Moco.log

/**
 * 获取server的工具类,提供了计数监视器和日志监视器
 * 这里的继承关系为了更方便调用mocorequest和mocoresponse的静态方法
 */
class MocoServer extends MocoResponse {

    def array = []

/**
 * 获取httpserver对象,端口号12345
 * @return
 */
    static HttpServer getServer() {
        httpServer 12345, getLogMonitor()
    }

/**
 * 获取httpserver对象
 * @param port
 * @return
 */
    static HttpServer getServer(int port) {
        httpServer port, getLogMonitor()
    }

/**
 * 获取httpserver对象
 * @param mocoMonitors
 * @return
 */
    static HttpServer getServer(MocoMonitor mocoMonitors) {
        httpServer 12345, mocoMonitors
    }

/**
 * 获取httpserver对象
 * @param port 端口
 * @param logName 日志文件名
 * @param configs 配置
 * @return
 */
    static HttpServer getServer(final int port, String logName, MocoMonitor configs) {
        httpServer port, getLogMonitor(logName), configs
    }

    /**
     * 获取httpserver对象
     * @param port 端口
     * @param logName 日志文件名
     * @return
     */
    static HttpServer getServer(final int port, String logName) {
        httpServer port, getLogMonitor(logName)
    }

/**
 * 获取日志监视器,在log_path下面
 * @param logName
 * @return
 */
    static def getLogMonitor(String logName) {
        log LOG_Path + logName, DEFAULT_CHARSET
    }

/**
 * 获取日志监视器,默认在控制台显示
 * @return
 */
    static def getLogMonitor() {
        log()
    }

/**
 * 获取计数监视器,计数器在做测试的时候用到,确认服务启动且接口调用正常
 * @return
 */
    static RequestHit getHitMonitor() {
        MocoRequestHit.requestHit()
    }

/**
 * 启动所有服务
 * @param httpServer
 * @return
 */
    static MocoServer run(HttpServer... httpServer) {
        def server = new MocoServer()
        httpServer.each { x -> server.array << Runner.runner(x) }
        server.start()
    }

/**
 * 启动服务
 * @return
 */
    def start() {
        array.each { x -> x.start() }
        this
    }

/**
 * 结束服务
 * @return
 */
    def stop() {
        array.each { x -> x.stop() }
    }
}


  • 郑重声明:“FunTester” 首发,欢迎关注交流,禁止第三方转载。更多原创文章:FunTester 十八张原创专辑,合作请联系Fhaohaizi@163.com

热文精选

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册