如何在多环境运行同一Gatling测试:环境变量配置与传参方案
Gatling多环境测试配置方案
1. 创建环境专属配置文件
在src/test/resources目录下,为每个环境创建独立的配置文件,存放对应环境的URL及其他配置项:
- env-dev.conf
baseUrl = "http://dev-api.example.com" userApi = "${baseUrl}/users" orderApi = "${baseUrl}/orders"
- env-qa.conf
baseUrl = "http://qa-api.example.com" userApi = "${baseUrl}/users" orderApi = "${baseUrl}/orders"
- env-prod.conf
baseUrl = "https://prod-api.example.com" userApi = "${baseUrl}/users" orderApi = "${baseUrl}/orders"
2. 在Simulation类中动态加载配置
修改Gatling测试的Simulation类,读取运行时传入的GATLING_ENV变量,自动加载对应环境的配置:
import io.gatling.core.Predef._ import io.gatling.http.Predef._ import com.typesafe.config.ConfigFactory class ApiSimulation extends Simulation { // 读取运行时环境变量,默认用dev兜底 val env = System.getProperty("GATLING_ENV", "dev") // 加载对应环境的配置文件 val config = ConfigFactory.load(s"env-${env}") val baseUrl = config.getString("baseUrl") val userApiUrl = config.getString("userApi") val httpConf = http .baseUrl(baseUrl) .acceptHeader("application/json") // 测试场景示例 val scn = scenario("ApiTest") .exec(http("GetUsers") .get(userApiUrl)) setUp( scn.inject(atOnceUsers(1)) ).protocols(httpConf) }
3. 运行对应环境的测试
通过Gradle命令传入GATLING_ENV参数,指定要运行的环境:
- 运行开发环境测试
./gradlew clean gatlingRun -DGATLING_ENV="dev"
- 运行QA环境测试
./gradlew clean gatlingRun -DGATLING_ENV="qa"
- 运行生产环境测试
./gradlew clean gatlingRun -DGATLING_ENV="prod"
内容的提问来源于stack exchange,提问作者Banu
相关产品推荐
相关产品推荐

