一分钟mock一个接口

大家如果遇到过本地调试需要请求生产环境的接口,一般会怎么做呢,是把测试搬到生产环境做还是直接不去请求这个接口呢?

为了尽可能在本地跑起生产环境的服务,并且尽量不改代码,某些场景下,可能 mock 一下线上的接口,可能会更方便。当然前提是这些接口是不得不请求,但是又对实际结果用处不大的那种类型的接口了。

本文介绍一个很简单的 mock 接口的方法,mock 完写个 Dockerfile 就可以发布到本地或者发布到 TKE/TKEx 了。

➜  tmp cat server.sh
#!/usr/bin/env bash
JSON={\"version\":\"4.0\",\"timestamp\":\"1623816698591\",\"eventId\":\"38494\",\"componentName\":\"SWOOLE_WTAG\",\"returnValue\":0,\"returnCode\":0,\"codeDesc\":\"success\",\"returnMessage\":\"ok\",\"interface\":\"qcloud.tag.addResourceProjectTag\",\"data\":[]}
RESPONSE="HTTP/1.1 200 OK\r\nConnection: keep-alive\r\n\r\n${2:-$JSON}\r\n"
while { echo -en "$RESPONSE"; } | nc -l "${1:-8081}"; do
  echo "================================================"
done

JSON 恒返回相同的值,这里是有点不那么聪明,不过对于意义不大的线上接口,如果不想改代码,这个 mock 是相对比较好的方案了。

顺便提供一下 Dockerfile。

FROM centos:7

RUN yum install nc -y
ADD . .

ENTRYPOINT ["bash", "tag_server.sh"]

效果图如下,就是这么简单粗暴。
一分钟mock一个接口

上一篇:vue--Mock的使用


下一篇:Rabbitmq 延迟队列实现定时任务,这才是正确的方式!