我想使用 gatling 进行负载测试,并将其与 jenkins 集成。任何人都可以向我提供这样做的分步方法。我对使用 maven 和 sbt 知之甚少。
我认为这个问题非常重要和相关,所以虽然 OP 已经找到了解决方案,但我正在写一个详细的答案。我有通过 Git 将 Gatling-Maven 项目与 Jenkins 集成的经验,所以我将采用这种组合。
该项目需要能够使用一些构建工具从终端运行,在这种情况下是 Maven。在加特林Maven插件是这个合适的工具。要导入它,请在您的pom.xml:
<plugins>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>MANUALLY_REPLACE_WITH_LATEST_VERSION</version>
<configuration>
<simulationClass>MANUALLY_REPLACE_WITH_YOUR_SIMULATION_CLASS</simulationClass>
</configuration>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
注 1:gatling-charts-highcharts依赖项和gatling-maven-plugin插件的版本不必匹配。
注2:simulationClass用你的模拟类替换标签中的值,因为它在包语句中(例如com.example.my.SimulationClass)。
执行此操作后,您应该能够使用以下命令从命令行运行项目:
mvn clean package
mvn gatling:test
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Scala Maven 插件。在这种情况下,您需要运行主类(在其中构建 Gatling 属性)。
我假设您已经设置了 Jenkins 环境并安装了 Jenkins Maven 插件。请参阅此页面以了解有关插件部分的更多信息。
可以通过三种方式定义 Jenkins 管道的作用:
我认为第三个选项是最实用的选项,因为通过这种方式管道脚本致力于源代码控制。这使得它更透明,更易于维护。
请参阅此页面以了解有关其他选项的更多信息。
因此,在您的项目根目录中创建一个具有名称Jenkinsfile且没有扩展名的文件。将此脚本粘贴到其中:
pipeline {
agent any
stages {
stage("Maven build") {
steps {
sh 'mvn -B clean package'
}
}
stage("Gatling run") {
steps {
sh 'mvn gatling:test'
}
post {
always {
gatlingArchive()
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
提交此文件并将提交推送到远程存储库,如 Github 或 Gitlab。这就是 Jenkins 将能够读取Jenkinsfile.
要在 Jenkins 中创建管道作业,请转到您的 Jenkins 仪表板并单击左侧菜单栏顶部的“新建项目”。命名作业并选择 Pipeline 作为类型。单击确定。
在管道配置页面上,向下滚动到Pipeline标题并在Definition下拉列表中选择“来自 SCM 的管道脚本” 。出现一个下拉菜单,用于选择版本控制系统。选择 Git。将您的存储库 URL 粘贴到相关字段(用于克隆存储库的字段)。您可以使用 HTTP 或 SSH 协议,但要注意相应地设置凭据。如果 Jenkins 无法访问存储库,则会显示红色错误消息。或者,您可以设置要构建的分支(确保该分支上有 Jenkinsfile)。
全部设置好后,点击保存。
此时,Jenkins 应该可以构建和运行项目了,但是要查看报告,需要安装Gatling Jenkins 插件(这是执行gatlingArchive()管道脚本中的行。它还提供了比较结果的方法)最近 15 个版本,这非常有用。
要安装此插件,请返回您的 Jenkins 仪表板并单击左侧菜单栏上的“管理 Jenkins”。搜索 Gatling 并安装插件。当被问到时重新启动 Jenkins。
转到新管道的仪表板页面。(现在左边的菜单应该包含一个“Gatling”选项。)点击“Build”。构建完成后,单击左侧的“Gatling”并向下滚动到页面底部。您可以通过单击链接打开 Gatling 报告。随着越来越多的构建运行并添加到您的历史记录中,所有报告都将在此处可用,并且图表将包含来自最近 15 个构建的数据。
我刚刚在加特林和特拉维斯之间编写了一个简单的集成,我正在使用现有的加特林插件,如果您有兴趣,请看这里https://github.com/enriquezrene/gadling-tutorial-sbt
| 归档时间: |
|
| 查看次数: |
8202 次 |
| 最近记录: |