[英]How to run a gatling test from a java code and pass the url of test in parameters of simulation?
[英]How to run a Gatling simulation from java code without maven and gradle?
我想從 Java 代碼中執行我的加特林模擬,而不是使用命令 maven 或 gradle。 是否可以直接從 Java 代碼運行測試/場景?
選項1:
如果你想從代碼中運行 Gatling,你可以調用這個 class:
io.gatling.app.Gatling
源代碼:
我可能不會直接調用main
,而是像這樣調用start
function 或自定義 start function 。 這是一個嘗試or 。
像這樣的東西(從上面的鏈接復制):
import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder
object Engine extends App {
val props = new GatlingPropertiesBuilder
props.simulationClass("your.simulation.class.goes.here")
props.dataDirectory("path.to.data.directory") //optional
props.resultsDirectory("path.to.results.directory") //optional
props.bodiesDirectory("path.to.template.directory") //optional
props.binariesDirectory("path.to.binaries.directory") //optional
Gatling.fromMap(props.build)
}
選項 2:
(編譯階段)使用 Maven 原型生成幫助程序類(您可能需要編譯您的 Java 無論如何)。 文檔。 這將生成Engine
( code ) 和您可以運行的其他類。 這與選項 1 類似,但如果您從 maven 項目工作,則有助於解析路徑。 如果您使用 maven 來構建您的項目,這是有道理的。
選項 3:
使用Runtime.getRuntime().exec()
或類似方法從 Java 調用gatling.sh
或gatling.bat
作為進程。
記住:
Gatling 測試需要在執行之前進行編譯。 這基本上就是gatling.[sh|bat]
正在做的事情:
# Run the compiler
"$JAVA" $COMPILER_OPTS -cp "$COMPILER_CLASSPATH" io.gatling.compiler.ZincCompiler $EXTRA_COMPILER_OPTIONS "$@" 2> /dev/null
# Run Gatling
"$JAVA" $DEFAULT_JAVA_OPTS $JAVA_OPTS -cp "$GATLING_CLASSPATH" io.gatling.app.Gatling "$@"
如果您從 Java 調用 Scala 代碼,則肯定有可用的互操作。 確保 Scala 在您的情況下首先編譯,或者可以輕松加載到 Java CP 中。 如果需要,在 Scala 端創建 Java 友好包裝器。
如果您想要緊密集成,我將從選項 1 或 2 開始,如果您只想將事物粘合在一起並且不介意啟動/初始化時間,則從選項 3 開始。
注意 Gatling 所需的 Classpath - 這將取決於其類的位置(在您的項目中或外部)以及您如何調用它。
您絕對可以通過測試名稱,只需查看 arguments 在這些類中的使用方式。 例如props中的simulationClass
。 所有可用的方法(simulationsDirectory、simulationClass 等)。
我相信這需要一些試驗和錯誤,但絕對可以做到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.