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

gatling的环境配置

我最近在一个项目中工作,我们不得不将出色的负载测试工具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的环境配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java底层机制_Java同步机制的底层实现

在多线程编程中我们会遇到很多需要使用线程同步机制去解决的并发问题,而这些同步机制就是多线程编程中影响正确性和运行效率的重中之重。这不禁让我感到好奇,这些同步机制是如何实现的呢?好奇心是进步的源泉,就让我们一起来揭开同…

Linux下常用文本处理命令

Linux下面有很多经典的非常有用的命令,其中处理文本的命令就有很多。这些小工具经过了几十年时间的洗礼,现在已经变成了经典,已经变成了Linux下面的标准,其实它们一直是遵循着Linux的标准。下面就让我们一起看看这些经典的Linux文…

payara 创建 集群_高可用性(HA),会话复制,多VM Payara群集

payara 创建 集群抽象 在研究如何创建高可用性(HA)时,我发现了会话复制,多机处理的Payara / GlassFish群集,无法在单个参考中找到所需的一切。 我认为这将是一个普遍的需求并且很容易找到。 不幸的是,我的假…

python3连接oracle数据库真操蛋_为64位Windows7的Python3安装MySQLdb

Install 64-bit MySQLdb for Python 3 on Windows 7为64位Windows7的Pyhton3安装MySQLdb原文在此Jesus Rollerblading Christ. It all started as a simple idea: I would install Django and start working on this web app idea I had and use it as a chance to learn more …

每个程序员都应该知道的8个Linux命令

每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令&a…

python判断字符串在元祖_Python基础(2)——字典、元祖、字符串方法、非空即真、文件...

目录:一、字典二、元祖三、字符串方法、切片四、非空即真,非0即真五、文件正文一、字典字典d {username:xiaohei,id:1,grand:天马座,addr:北京,age:29}1、增加d {username:xiaohei,id:1,grand:天马座,addr:北京,age:29}#增:2个方法d[money] …

java hotspot 是什么_什么是HotSpot

Java是解释语言,但并不意味着它一定被解释执行。早期的虚拟机确实一条一条指令解释执行,但人们发现这样效率太低,不满足各种要求,因此出现了许多其它虚拟机,如JIT的虚拟机。HotSpot也是类似一种虚拟机,自从…

积分和人民币比率_通过比率路由到旧版和现代应用程序–通过Spring Cloud的Netflix Zuul...

积分和人民币比率从应用程序的旧版本迁移到应用程序的现代化版本时,一个非常常见的要求是能够将用户缓慢迁移到新应用程序。 在本文中,我将介绍通过Spring Cloud使用对Netflix Zuul的支持编写的这种路由层。 在继续之前,我必须承认&#xff0…

Java集合类原理详解

文章目录1 集合框架1.1 集合框架概述1.1.1 容器简介1.1.1 容器的分类1.2 Collection1.2.1 常用方法1.2.2 迭代器1.3 List1.3.1 概述1.3.2 常用方法1.3.3 实现原理1.4 Map1.4.1 概述1.4.2 常用方法1.4.3 Comparable 接口1.4.4 实现原理1.4.5 覆写 hashCode()1.5 Set1.5.1 概述1.…

sql安装联机丛书提示发生网络错误_速达软件:安装问题解答

问题Q&A在安装MSDE数据库时,出现安装程序倒退的情况解决方案:这是以前装过SQL Server数据库或MSDE数据库,没有卸载干净.解决办法重装操作系统。安装MSDE数据库时,系统出现“读取文件C:\program files\Microsoft sql sever\mssql\data\msd…

java分布式系统开发_从微服务到分布式系统-Java开发人员生存指南

java分布式系统开发感觉像是对微服务的炒作正在慢慢地落到实处,并且我们的行业开始意识到,根据微服务背后的体系结构范式无法通过仅在现有组件之上公开一些HTTP接口来轻松创建一个系统。 。 我们似乎确实同意必须进行服务优化的基础架构,文化…

java 调整jvm_eclipse修改jvm参数调优方法(2种)

本文介绍了eclipse修改jvm参数调优方法(2种),分享给大家,具体如下:一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,…

python对分组进行排序_如何按排序顺序将列表中的项目分组?

由于您希望对输出进行排序,所以可以根据第一个元素对原始列表进行排序>>> first lambda x: x[0]>>> one_sorted sorted(one, keyfirst)然后您可以根据第一个元素使用^{}对元素进行分组,如下所示^{pr2}$因为您想按升序给组分配数字&a…

链表数据结构原理图/内存结构图/内存图

单项链表内存结构图(也叫原理图) 单项链表内存结构图

java web源代码_检测Java Web应用程序而无需修改其源代码

java web源代码与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口。 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Servlet来实现的。 使用JDBC接口java.sql.Statement和java.sql.Connection实现数据库交互。 这些标准几乎是…

反射与泛型 java_Java的反射 和 泛型的一个问题

aluckdog模板方法在编译过程中类型擦除:update(T,UpdateOperations)退化成update(Object,UpdateOperations);update(Query,UpdateOperations)退化成update(Query,UpdateOperations);morphia的update方法不光是一个模板方法,还是一…

迭代器原理图

原理图&#xff1a; Iterator<String> it Collection.iterator();it 是集合Collection的视图&#xff0c;迭代器其实就是视图&#xff08;类似数据库的 view&#xff09;&#xff0c;可以理解为一张单列多行的表&#xff0c;如下图所示&#xff1a; 有人理解成单行多…

neo4j python 算法_图论与图学习(二):图算法

选自towardsdatascience作者&#xff1a;Mal Fabien机器之心编译参与&#xff1a;熊猫图(graph)近来正逐渐变成机器学习的一大核心领域&#xff0c;比如你可以通过预测潜在的连接来理解社交网络的结构、检测欺诈、理解汽车租赁服务的消费者行为或进行实时推荐。近日&#xff0c…

cobol和java_现代化历险:策略+将COBOL转换为Java的示例

cobol和java在Keyhole Software&#xff0c;我们在很大程度上是一家现代化公司。 我们有一些顾问&#xff0c;专门研究将旧的代码迁移到新的&#xff0c;翻新的残旧代码库&#xff0c;并为大多数已经被供应商锁定的企业设计更光明的未来。 作为这些经验的一个有趣的副作用&…

c# mysql sdr_C#结合数据库实现验证识别ID卡内容的方法

本文所述实例为C#结合数据库&#xff0c;来验证所识别的ID卡内容&#xff0c;通过本实例代码&#xff0c;用户可以轻松实现对ID卡会员信息的验证。该实例代码可实现读取数据库&#xff0c;进而逐步实现数据库连接&#xff0c;数据库读取&#xff0c;ID卡读取&#xff0c;ID卡信…