gatling的环境配置_将Gatling集成到Gradle构建中–了解SourceSet和配置

gatling的环境配置

我最近在一个项目中工作,我们不得不将出色的负载测试工具Gatling集成到基于Gradle的版本中。 有可用的gradle插件使此操作变得容易,其中有两个是thisthis ,但是对于大多数需求而言,只需简单执行命令行工具本身就足够了,因此本文将详细介绍如何将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.properties
                println resources.properties
            }
        
            test {
                println java.properties
                println 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.gatling

    main = "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的环境配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值