首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >moco API模拟框架视频讲解(下)

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

作者头像
FunTester
发布2020-05-26 11:22:21
4940
发布2020-05-26 11:22:21
举报
文章被收录于专栏:FunTesterFunTesterFunTester

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

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

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

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

http://mpvideo.qpic.cn/0bf2myaaeaaasaafuagcbbpfazwdajtaaaqa.f10002.mp4?dis_k=4f6db456d7b910c407eb36eb3ac48ac8&dis_t=1590463296

演示代码

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • moco API模拟框架视频讲解(下)
  • 演示代码
  • MocoServer代码
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档