文章目錄
安裝 Gatling
原本想要使用 Gatling 來進行 gRPC 的 load test,但光安裝 Gatling 就不是很理解,所以先了解並紀錄一下 Gatling 的基本安裝,我認為應該是我平常熟悉的開發語言跟工具不是 Java
, Kotlin
and Scala
在語法或是設定上都看不懂官網文件XD
關於 Gatling
- 先決條件:安裝 64bits OpenJDK LTS:
8
,11
,17
> 其他 JVM 像是JDK 12
,client JVMs
,32bits systems
orOpenJ9
都不支援 - Gatling 3.7 開始支援
Java
,Kotlin
andScala
來撰寫測試腳本 > 舊版本只能使用Scala
- 不要使用 maven central 上的
M
版本 > 僅供 內部 與 Gatling Enterprise 使用
基本環境說明
- macOS Monterey 12.3
- openjdk 17.0.2 2022-01-18 LTS
- Apache Maven 3.8.5
- Gradle 7.4.2
- Sbt 1.6.2
- Scala 2.12.15
- Gatling 3.7.6
- io.gatling:gatling-maven-plugin 4.1.5
- io.gatling.gradle 3.7.6.2
- io.gatling:gatling-sbt 4.1.5
安裝方式
先決條件:安裝 64bits OpenJDK LTS:
8
,11
,17
其他 JVM 像是
JDK 12
,client JVMs
,32bits systems
orOpenJ9
都不支援
至 Open Source page 下載整合壓縮檔
- 整合壓縮檔只支援
Java
跟Scala
- 整合包內容如下:
bin
:Gatling
跟Recorder
的啟動腳本conf
:Gatling
,Akka
跟Logback
的設定檔lib
: Gatling 跟相依套件user-files
:simulations
: 用來放測試情境程式的位置resources
: 非測試程式的其他資源
results
: 測試結果
- 整合壓縮檔只支援
使用 build tool plugin
透過 build tool 搭配 gatling plugin 來執行測試
Maven:支援
Java
,Kotlin
andScala
macOS 安排 Maven
brew install maven
詳細資訊請參考 Gatling 官方文件:Maven Plugin
設定方式:在專案的
pom.xml
新增以下設定<dependencies> <dependency> <groupId>io.gatling.highcharts</groupId> <artifactId>gatling-charts-highcharts</artifactId> <version>MANUALLY_REPLACE_WITH_LATEST_VERSION</version> <scope>test</scope> </dependency> </dependencies> <plugin> <groupId>io.gatling</groupId> <artifactId>gatling-maven-plugin</artifactId> <version>MANUALLY_REPLACE_WITH_LATEST_VERSION</version> </plugin>
gatling-charts-highcharts
與gatling-maven-plugin
版本可以到 Maven Central 查詢各語言的範例
Gradle:支援
Java
,Kotlin
andScala
macOS 安裝 Gradle
brew install gradle
詳細資訊請參考 Gatling 官方文件:Gradle Plugin
設定方式:在專案的
build.gradle
新增以下設定plugins { id 'io.gatling.gradle' version "MANUALLY_REPLACE_WITH_LATEST_VERSION" }
io.gatling.gradle
的版本可以至 Gradle Plugins Portal 查詢各語言範例
Sbt:僅支援
Scala
- 詳細資訊請參考 Gatling 官方文件:SBT Plugin
設定方式:
macOS 安裝 sbt
brew install sbt
在專案的
project/plugins.sbt
新增相依套件addSbtPlugin("io.gatling" % "gatling-sbt" % "MANUALLY_REPLACE_WITH_LATEST_VERSION")
在專案的
build.sbt
新增相依套件並啟用enablePlugins(GatlingPlugin) libraryDependencies += "io.gatling.highcharts" % "gatling-charts-highcharts" % "MANUALLY_REPLACE_WITH_LATEST_VERSION" % "test" libraryDependencies += "io.gatling" % "gatling-test-framework" % "MANUALLY_REPLACE_WITH_LATEST_VERSION" % "test"
gatling-charts-highcharts
,gatling-test-framework
,gatling-sbt
版本可以至 Maven Central 查詢
使用 IDE
IntelliJ IDEA
原生就已支援
Java
,Kotlin
,maven
andgradle
,只有Scala
需要額外安裝套件Visual Studio Code
安裝語言的相應套件可以正確 build 專案,但無法如同官網說明的單執行
Engine
會出現 build error
心得
Gatling 提供的安裝方式好幾個,不過對於非原生 Java
, Kotlin
and Scala
的使用者並不友善,像是 build tool 的整合,以我一個其他語言的開發人員只想做 load test 還得要去了解 Maven
Gradle
Sbt
可以想見一定是障礙重重;以 IDE 的整合而言,IntelliJ IDEA 使用上沒問題,但要非 Java
, Kotlin
開發人員只為了 load test 安裝,我個人覺得太材小用了,而常見的 Visual Studio Code 卻沒有更完整的設定說明要重新了解整個開發跟工具的生態圈,進入門檻過高,實在可惜
參考資訊
文章作者 Yowko Tsai
上次更新 2022-04-12
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。