昨天的文章详细的介绍了mock,今天补充一个mock服务的实际使用场景——高并发性能测试时的依赖服务mock;
最近在做一个项目的全链路压测,目的是验证服务有LB层、虚拟化层再到服务本身的性能情况,目标QPS是50w;这就带来一个问题,由于待测服务A有n个后端服务,且客户端请求数:后端服务请求数是1:n的,也就是说预期的50w的qps,对应后端的qps和就是n倍的50w;当然,测试过程不能使用线上服务,所以需要一个性能非常好的mock服务;
https://github.com/squeaky-pl/japronto
引用一张性能对比:

服务启动 -> initData -> 根据type做不同处理,默认返回类型json,proto的话做二进制序列化; DB字段:
 实现简单前端页面完成接口内容修改:
 用wrk验证一下测试服务性能:(抛开带宽限制)
 32核机器,20个进程,qps可达98w,tp99<2ms;
实际使用时,只需要同时部署5台20核虚机,或打包成镜像附属到测试集群,使用内网域名负载均衡到这五台机器(k8s集群的话使用域名映射),将被测服务的依赖服务地址改写成mock域名:端口/自定义path;
https://github.com/lidedede/fastMock
超高并发的中转服务测试场景,依赖服务数据稳定,被测服务无缓存(或测试过程中去掉缓存)