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

已配置Kotest并行参数,Feature内Scenarios仍串行,如何解决?

解决Kotest同Feature下Scenarios并行执行问题

问题原因

你当前配置里,feature块的concurrency = 5是用来控制多个不同Feature之间的并行执行数量,而非同一个Feature内部的Scenarios并行。Kotest默认会串行执行同一个Feature下的所有Scenarios,所以即使全局开了并行,这两个场景还是会按顺序跑。

解决方案

要让同一个Feature内的Scenarios并行,需要在Feature块中设置parallelism属性,同时确保全局并行池足够支撑:

1. 修改Feature配置

将concurrency = 5替换为parallelism = 2(对应两个场景的并行需求):

@ExperimentalKotest
class LoginTest : BaseTest() {
    init {
        feature("Login") {
            // 控制当前Feature内的Scenarios并行数量
            parallelism = 2

            beforeTest {
                //some config
                LoginHelper.login()
            }

            scenario("Login successful") {
                loginToApp()
            }

            scenario("Login unsuccessful") {
                failLoginToApp()
                withClue("Login unsuccessfull") {
                    loginMessage.getFailMessage().shouldBeTrue()
                }
            }
        }
    }
}

2. 确认全局并行池足够

你的ProjectConfig里parallelism = 3是全局可用的并行线程数,这个值要大于等于你在Feature中设置的parallelism,否则会限制并行执行的数量。如果后续需要同时跑更多测试,可以适当调大这个值。

额外注意事项

  • 检查BaseTest类是否存在覆盖并行配置的代码(比如禁用并行的逻辑),若有需移除。
  • 确保测试代码线程安全:比如LoginHelper或页面元素操作没有共享状态,否则并行执行可能导致测试失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:46:09