将Gatling集成到Gradle构建中–了解SourceSet和配置
我最近在一個項目中工作,我們不得不將出色的負載測試工具Gatling集成到基于Gradle的版本中。 有可用的gradle插件使此操作變得容易,其中兩個是this和this ,但是對于大多數需求而言,只需簡單執行命令行工具本身就足夠了,因此本文將詳細介紹如何將gatling連接起來進入gradle構建過程,并在此過程中了解一些良好的gradle概念。
來源集和配置
要執行gatling cli,我需要做一些事情,需要一個位置來獲取Gatling模擬的源代碼和相關內容,并且需要一種獲取gatling庫的方法。 這是Gradle的兩個概念(SourceSets和Configuration)起作用的地方。
讓我們從第一個開始-SourceSets。
源集
SourceSet只是相關文件的邏輯分組,最好通過一個示例進行演示。 如果要在gradle版本中添加“ java”插件:
apply plugin: 'java'現在,sourceSets屬性將顯示兩個值“ main”和“ test”,如果我想查找這些sourceSets的詳細信息,可以使用gradle任務來打印詳細信息:
task sourceSetDetails {doLast {sourceSets {main {println java.propertiesprintln resources.properties}test {println java.propertiesprintln resources.properties}}} }回到gatling,我基本上可以創建一個新的sourceSet來保存gatling模擬:
sourceSets {simulations }現在,這將使加特林模擬駐留在“ src / simulations / java”中,并將與之相關的資源駐留在“ src / simulations / resources”文件夾中,這是可以的,但理想情況下,我希望將其與項目完全分開資料來源。 我希望我的文件夾結構在“ simulations / load”文件夾中包含負載模擬,在“ simulations / resources”文件夾中包含資源。 可以通過首先應用“ scala”插件來對此進行調整,該插件為項目帶來了scala編譯支持,然后根據以下內容修改了“ simulations”源集:
apply plugin: 'scala'sourceSets {simulations {scala {srcDirs = ['simulations/load']}resources {srcDirs = ['simulations/resources']}} }通過這些更改,我現在可以將仿真放置在正確的位置,但是尚未掌握加特林和scala的依賴性,這就是gradle的“配置”功能所在的地方。
組態
Gradle配置是將相關依賴項分組在一起的一種方式。 如果我要使用任務來打印現有的一組配置:
task showConfigurations {doLast {configurations.all { conf -> println(conf) }} }這些出現:
configuration ':archives' configuration ':compile' configuration ':compileClasspath' configuration ':compileOnly' configuration ':default' configuration ':runtime' configuration ':simulationsCompile' configuration ':simulationsCompileClasspath' configuration ':simulationsCompileOnly' configuration ':simulationsRuntime' configuration ':testCompile' configuration ':testCompileClasspath' configuration ':testCompileOnly' configuration ':testRuntime' configuration ':zinc'應該熟悉“ compile”和“ testCompile”,即通常這樣聲明正常的源依賴項和測試依賴項:
dependencies {compile 'org.slf4j:slf4j-api:1.7.21'testCompile 'junit:junit:4.12' }但是,看起來現在還可以使用“ simulations”源集的配置–“ simulationsCompile”和“ simulationsRuntime”等,因此我可以使用這些配置聲明我的加特林仿真所需的依賴項,但是我的目的是聲明一個自定義配置只是為了進一步介紹該概念,因此讓我們顯式聲明一個:
configurations {gatling }并使用此配置聲明加特林的依賴關系:
dependencies {gatling 'org.scala-lang:scala-library:2.11.8'gatling 'io.gatling.highcharts:gatling-charts-highcharts:2.2.5' }幾乎在那兒,現在我們如何通過稍微調整sourceSet來告訴模擬源集中的源使用來自gatling配置的依賴項。
sourceSets {simulations {scala {srcDirs = ['simulations/load']}resources {srcDirs = ['simulations/resources']}compileClasspath += configurations.gatling} }運行加特林場景
定義了源集和配置之后,我們要做的就是編寫一個任務來運行一次加特林模擬,可以遵循以下步驟:
task gatlingRun(type: JavaExec) {description = 'Run gatling tests'new File("${buildDir}/reports/gatling").mkdirs()classpath = sourceSets.simulations.runtimeClasspath + configurations.gatlingmain = "io.gatling.app.Gatling"args = ['-s', 'simulations.SimpleSimulation','-sf', 'simulations/resources','-df', 'simulations/resources','-rf', "${buildDir}/reports/gatling"] }查看如何將模擬的編譯源以及來自gatling配置的依賴項設置為“ JavaExec”任務的類路徑
審查此問題的一種好方法是查看我在此處找到的完整的工作示例
我的github倉庫 – https://github.com/bijukunjummen/cf-show-env
翻譯自: https://www.javacodegeeks.com/2017/05/integrating-gatling-gradle-build-understanding-sourcesets-configuration.html
總結
以上是生活随笔為你收集整理的将Gatling集成到Gradle构建中–了解SourceSet和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Oracle Data Integr
- 下一篇: 熊德神器天赋(tbc熊德天赋加点)