有啥免费的在线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 的构建是为了支持单个实例的大规模:
- 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 如何随着并行客户端数量的增加而增加。
Apache Bench 性能测试结果
Apache Benchmark 执行如下:
ab -k -n 10000000 -c <parallel clients> http://127.0.0.1:1080/simple
测试结果如下:
Locust 性能测试结果
执行
locust --loglevel=WARNING --headless --only-summary -u <parallel clients> -r 100 -t 180 --host=http://127.0.0.1:1080
测试结果如下:
使用下面的脚本
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可以用的主要内容,如果未能解决你的问题,请参考以下文章