上期讲过了moco API模拟框架视频讲解(上)、moco API模拟框架视频讲解(中),本期分享内容是mocoserver对象的创建和moco api的实践。
mocoserver比较简单,常用的参数基本port和logmonitor,其他的基本用不到。
moco API实践内容比较少,因为录制时间不够了,并未把所有的request和response演示完,有兴趣可以自己尝试一下,十分推荐。
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。 ---来自腾讯云社区的---八音弦
微信扫一扫打赏
支付宝扫一扫打赏