Karate-Gatling:API回归与性能测试能否共用同一GitHub仓库?
Karate-Gatling 同一仓库兼容回归与性能测试方案
完全可以在同一GitHub仓库中同时开展API回归测试与性能测试,核心是通过代码结构隔离和构建配置区分解决两类测试互相触发的问题,具体方案如下:
核心问题解决:避免Gatling触发TestRunner
当前触发Gatling脚本时会跑常规API测试,本质是构建工具扫描到了TestRunner类,可通过以下方式隔离:
目录结构隔离
将回归测试相关代码(TestRunner类、对应.feature文件)和性能测试代码(Gatling Simulation类、对应.feature文件)放在独立目录:- 回归测试:
src/test/java/regression(TestRunner)、src/test/resources/regression(feature文件) - 性能测试:
src/test/java/performance(Simulation类)、src/test/resources/performance(feature文件)
物理隔离后,构建工具可精准指定扫描范围。
- 回归测试:
构建命令精准控制
用Maven/Gradle的参数指定仅执行目标测试类:- 运行回归测试:
mvn test -Dtest=RegressionTestRunner(只跑指定的TestRunner) - 运行性能测试:
mvn gatling:test -Dgatling.simulationClass=performance.ApiPerformanceSimulation(只跑指定的Gatling仿真类)
- 运行回归测试:
标签辅助隔离
给回归测试的feature打@regression标签,性能测试的feature打@performance标签:- TestRunner中通过
tags("@regression")指定仅运行回归用例 - Gatling脚本中调用feature时指定
karateFeature("classpath:performance/api-test.feature@performance"),仅执行性能用例
- TestRunner中通过
参考示例
Karate官方示例仓库中包含同一仓库维护两类测试的场景,可参考其目录结构与配置逻辑:
- 回归测试代码集中在
src/test/java/com/intuit/karate/examples/regression目录 - 性能测试代码集中在
src/test/java/com/intuit/karate/examples/gatling目录 - 构建脚本通过不同命令触发不同测试任务,实现两类测试的独立执行
内容的提问来源于stack exchange,提问作者Mridul Tripathi
相关产品推荐
相关产品推荐

