如何为Gatling测试配置指定并发数?
设置固定并发数的测试实现
一、代码中直接指定并发数
根据测试需求,有两种常见的固定并发设置方式:
1. 持续维持固定并发
如果需要在测试期间持续保持指定数量的并发用户(比如一直维持2个并发),可以使用constantUsersPerSec方法搭配时长控制:
val fixedConcurrentInjection = constantUsersPerSec(2) during (15 seconds) // 每秒生成2个用户,持续15秒,整体并发稳定在2左右 setUp( scenario1.inject(fixedConcurrentInjection), scenario2.inject(fixedConcurrentInjection) )
2. 一次性启动指定并发数
如果需要瞬间启动固定数量的并发用户执行场景(比如一次性启动2个用户同时运行),使用atOnceUsers方法:
val instantConcurrentInjection = atOnceUsers(2) // 一次性启动2个并发用户 setUp( scenario1.inject(instantConcurrentInjection), scenario2.inject(instantConcurrentInjection) )
二、通过配置文件管理并发数
如果想把并发数参数抽离到配置文件,便于修改而不改动代码,可按以下步骤操作:
- 在项目的配置文件(如
application.conf)中添加配置项:
test-config { concurrent-users = 2 test-duration = 20 # 单位:秒,仅用于持续并发场景 }
- 在测试代码中读取配置并应用:
import io.gatling.core.Predef._ import com.typesafe.config.ConfigFactory // 加载配置文件 val testConfig = ConfigFactory.load() val targetConcurrent = testConfig.getInt("test-config.concurrent-users") val testDuration = testConfig.getInt("test-config.test-duration") seconds // 生成注入配置 val injectionProfile = constantUsersPerSec(targetConcurrent) during testDuration setUp( scenario1.inject(injectionProfile), scenario2.inject(injectionProfile) )
如果不同场景需要独立的并发数,只需在配置文件中为每个场景单独设置参数(如scenario1-concurrent = 2、scenario2-concurrent = 3),然后在代码中分别读取即可。
内容的提问来源于stack exchange,提问作者PoignantS
相关产品推荐
相关产品推荐

