有啥免费的在线mockserver可以用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有啥免费的在线mockserver可以用相关的知识,希望对你有一定的参考价值。

我是web前端开发,经常都在等服务端开发接口,我想用mockserver自己做个模拟接口,但是自己搭建感觉太麻烦了,有在线的好用的推荐吗?

一些在线的API文档编辑工具是有的,比如postman,不过postman的mock支持做的不是很好。个人推荐一个新大陆——易文档

个人体验后,觉得真心不错。而且它还具备各种同类工具的功能,又优于其他的同类工具。建议体验一下。

参考技术A 如何用mockito+spring进行单元测试(1) 本文只说如何使用。 假设你和我一样,也要构造一个系统,系统中有若干service,假设是A,B,C吧。 其中A 依赖 B 依赖 C。C是最基本的。 现在需要对A进行单测,但是C需要依赖于外部环境,而这个环境需要复杂...

MockServer集群化

MockServer 支持非常高的请求吞吐量,但是如果需要更高的每秒请求速率,则可以将 MockServer 集群化,以便所有节点共享期望。

MockServer集群化_jar

MockServer 的构建是为了支持单个实例的大规模:


  • Apache Benchmark 测试了多达 6,000 个并行客户端,显示 MockServer 平均为 1.58 毫秒,p99 为 4 毫秒,150 个并行客户端每秒发送 95,228 个请求
  • Locust 测试了多达 3,000 个并行客户端,并显示 MockServer 对 150 个并行客户端的 p99 为 4 毫秒

以下框架和技术用于最大化可扩展性:


  • Netty 一个异步事件驱动的网络应用框架,最大化 HTTP 和 TLS 的可扩展性
  • LMAX Disruptor 是一个高性能的线程间消息传递库,可最大限度地提高记录事件(即状态)和日志记录的可扩展性
  • ScheduledThreadPoolExecutor 一个可以调度延迟任务的线程池,用于执行延迟响应,避免阻塞线程

性能测试

MockServer 已经使用 Apache Benchmark 和 Locust 在以下场景中进行了性能测试:

  • 四个基本期望,包括方法、路径和标头
  • 基本 GET 请求匹配第三个期望(即每个请求尝试三个匹配)

在测试期间,MockServer 在 Java 13 JVM 上运行,使用以下命令:

java -Xmx500m -Dmockserver.logLevel=WARN -Dmockserver.disableLogging=true -jar ~/.m2/repository/org/mock-server/mockserver-netty/5.14.0/mockserver-netty-5.14.0-shaded.jar -serverPort 1080

下图显示了 p99 如何随着并行客户端数量的增加而增加。

MockServer集群化_jar_02

Apache Bench 性能测试结果

Apache Benchmark 执行如下:

ab -k -n 10000000 -c <parallel clients> http://127.0.0.1:1080/simple

测试结果如下:

MockServer集群化_jar_03

Locust 性能测试结果

执行

locust --loglevel=WARNING --headless --only-summary -u <parallel clients> -r 100 -t 180 --host=http://127.0.0.1:1080

测试结果如下:

MockServer集群化_json_04

使用下面的脚本

import locust.stats
from locust import task, between
locust.stats.CONSOLE_STATS_INTERVAL_SEC = 60
from locust.contrib.fasthttp import FastHttpLocust

class UserBehavior(FastHttpUser):
wait_time = between(1, 1)

@task
def request(self):
self.client.get("/simple", verify=False)

尽管期望是集群的,但目前不支持集群 MockServer 日志,因此请求验证仅适用于接收请求的节点。

要创建 MockServer 集群,所有实例都需要:

  • 共享一个读写文件系统,即相同的物理/虚拟机、NFS、AWS EFS、Azure 文件等
  • 配置相同的期望初始化器和期望持久化
  • 绑定到一个空闲端口,即如果在同一物理/虚拟机上,则为单独的端口

每个节点可以配置如下(根据需要调整端口):

MOCKSERVER_WATCH_INITIALIZATION_JSON=true \\
MOCKSERVER_INITIALIZATION_JSON_PATH=mockserverInitialization.json \\
MOCKSERVER_PERSIST_EXPECTATIONS=true \\
MOCKSERVER_PERSISTED_EXPECTATIONS_PATH=mockserverInitialization.json \\
java -jar ~/Downloads/mockserver-netty-5.14.0-shaded.jar -serverPort 1080 -logLevel INFO

或者

java \\
-Dmockserver.watchInitializatinotallow=true \\
-Dmockserver.initializatinotallow=mockserverInitialization.json \\
-Dmockserver.persistExpectatinotallow=true \\
-Dmockserver.persistedExpectatinotallow=mockserverInitialization.json \\
-jar ~/Downloads/mockserver-netty-5.14.0-shaded.jar -serverPort 1080 -logLevel INFO

关注公众号 soft张三丰 

MockServer集群化_客户端_05

以上是关于有啥免费的在线mockserver可以用的主要内容,如果未能解决你的问题,请参考以下文章

在线HTTP接口POST请求测试工具 类似Postman在线网页版 Mock API Android iOS

用postman Mock数据

使用mockserver来进行http接口mock

我是怎么搭建前端mock-server的

比较 mock、json-server、graphQL

测开基础之Mock接口测试