You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Karate如何在单端口部署多个feature文件对应的Mock服务?

Karate 多模块Mock服务同端口部署可行方案

以下是经过验证的3种可落地实现方案,可根据团队使用场景选择:

方案1:主入口Mock聚合(推荐快速适配场景)

  • 新增统一入口聚合Feature文件,可命名为all-mocks.feature
  • 在文件的Background块中通过callonce关键字引入所有模块的*-mock.feature文件,示例如下:
    Feature: Aggregate All Module Mock Rules
    
    Background:
      * callonce read('category/category-mock.feature')
      * callonce read('product/product-mock.feature')
      * callonce read('user/user-mock.feature')
      # 按需添加其他模块的Mock文件引用
    
  • 启动时直接指向该聚合文件即可实现所有规则加载到同一端口:java -jar karate.jar -m all-mocks.feature
  • 优势:无额外依赖,原有Mock规则零修改,改动成本极低

方案2:反向代理路由(推荐模块解耦场景)

  • 保留原有单模块Mock启动方式,每个模块Mock服务占用不同本地端口
  • 部署一层轻量反向代理(如Nginx、Caddy),配置统一对外端口,按接口路径前缀路由到对应模块的Mock服务
  • Nginx配置参考示例:
    server {
      listen 8080; # 统一对外端口
      # 分类模块接口路由
      location /api/category/ {
        proxy_pass http://127.0.0.1:8081/;
      }
      # 商品模块接口路由
      location /api/product/ {
        proxy_pass http://127.0.0.1:8082/;
      }
      # 按需添加其他模块路由规则
    }
    
  • 优势:各模块Mock服务完全独立,启停、迭代互不影响,适合多团队并行维护的场景

方案3:自定义Java启动类(推荐定制化需求场景)

  • 基于Karate官方Java API编写自定义启动类,在代码中批量扫描加载所有*-mock.feature文件,注册到同一个MockServer实例
  • 代码参考示例:
    import com.intuit.karate.core.MockServer;
    import org.apache.commons.io.FileUtils;
    import java.io.File;
    import java.util.Collection;
    
    public class UnifiedMockStarter {
      public static void main(String[] args) {
        MockServer.Builder serverBuilder = MockServer.builder();
        // 递归扫描指定目录下所有mock结尾的feature文件
        Collection<File> mockFiles = FileUtils.listFiles(
            new File("src/test/resources/features"),
            new String[]{"feature"},
            true
        );
        for (File mockFile : mockFiles) {
          if (mockFile.getName().endsWith("-mock.feature")) {
            serverBuilder.feature(mockFile);
          }
        }
        // 绑定统一端口启动
        serverBuilder.port(8080).build().waitSync();
      }
    }
    
  • 优势:扩展性强,支持自定义过滤规则、热加载Mock规则、权限校验等定制化能力

内容的提问来源于stack exchange,提问作者desidigitalnomad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 15:15:08