我很喜欢 gatling 和 kotlin, 以下是正文内容
构建 kotlin 脚手架
- 3 分钟构建 kotlin 脚手架 juejin.cn/post/734721…
构建 gatling 脚手架
-
kotlin 脚手架基础上新建 gatling/kotlin 目录 (没看源码, 看文档是需要这样; 如果不这样弄, 笔者试过, gatling 没法找到压测脚本, gatling 应该是通过固定模块下找脚本)
-
build.gradle.kts 下添加依赖
dependencies { implementation("io.gatling.highcharts:gatling-charts-highcharts:3.9.3") implementation("io.gatling:gatling-app:3.9.3") implementation("io.gatling:gatling-core:3.9.3") } -
build.gradle.kts 下添加插件
plugins { id("org.springframework.boot") version "3.0.5" id("io.spring.dependency-management") version "1.1.0" kotlin("jvm") version "1.7.22" kotlin("plugin.spring") version "1.7.22" id("io.gatling.gradle") version "3.9.3" } -
gatling/kotlin 下准备压测脚本
import io.gatling.javaapi.core.CoreDsl.constantUsersPerSec import io.gatling.javaapi.core.CoreDsl.scenario import io.gatling.javaapi.core.Simulation import io.gatling.javaapi.http.HttpDsl.http import java.time.Duration class TestSimulation : Simulation() { val httpProtocol = http .baseUrl("http://127.0.0.1:10005/marketing?current=2&size=10") .acceptHeader("application/json") val scn = scenario("TestSimulation") .exec(http("request1").get("")) init { this.setUp( scn.injectOpen( // 恒定 50 用户访问, 持续 15s constantUsersPerSec(50.0).during(Duration.ofSeconds(15)) ) ) .protocols(httpProtocol) } }
执行脚本
- 在工程目录下执行 cmd 命令
./gradlew gatlingRun稍等片刻
查看压测结果
-
执行完成后, 会生成报告地址
-
发现结果很哇塞
资料
-
kotlin gatling demo github.com/gatling/gat…
-
gatling 官方 docs docs.gatling.io/reference/s…