性能测试中使用karateFeature出现路径找不到问题求助
解决方案:动态定位Karate Feature文件路径问题
核心问题
PathFinder.getPath("getOrderRequest.feature") 失败的原因是:Gatling的PathFinder默认从你配置的simulationsFolder(即src/test/scala)开始查找文件,但你的getOrderRequest.feature实际存放在src/test/resources目录下,两者路径根不同,导致无法匹配。
可行解决方法
方法1:直接使用Classpath路径(推荐)
src/test/resources下的文件会被自动加入项目的classpath,直接通过classpath路径引用即可:
.exec(karateFeature("classpath:gratling/simulation/orderServices/getOrderRequest.feature"))
方法2:利用类加载器动态获取路径
如果需要动态拼接路径,可以通过当前类的类加载器获取资源的绝对路径:
val featurePath = getClass.getResource("/gratling/simulation/orderServices/getOrderRequest.feature").getPath .exec(karateFeature(featurePath))
方法3:调整PathFinder的相对路径
若坚持使用PathFinder,需要从src/test/scala向上回溯到resources目录,构建相对路径:
.exec(karateFeature(PathFinder.getPath("../../../resources/gratling/simulation/orderServices/getOrderRequest.feature")))
这种方式依赖固定目录结构,灵活性差,不推荐长期使用。
验证修改
替换代码后运行Gatling脚本,即可无需硬编码绝对路径,正确加载feature文件。
内容的提问来源于stack exchange,提问作者Monster
相关产品推荐
相关产品推荐

