1. 概述

本文将指导您使用JenkinsApache JMeter配置持续交付管道。

我们将利用JMeter文章作为理解JMeter基础的优秀起点,因为它已经包含了可以运行的一些性能测试。我们将使用该项目的构建输出来查看由Jenkins Performance插件生成的报告。

2. 配置Jenkins

首先,我们需要下载Jenkins的最新稳定版本,并导航至包含文件的文件夹中,然后通过java -jar jenkins.war命令运行它。

请记住,在没有初始用户设置的情况下,我们无法使用Jenkins。

3. 安装性能插件

接下来,让我们安装Performance插件,这是运行和显示JMeter测试所必需的:

安装性能插件

现在,我们需要重启实例。

4. 使用Jenkins运行JMeter测试

现在,请访问Jenkins主页并点击“创建新工作”,指定名称,选择Freestyle项目并点击“确定”。

如下图所示:

构建命令

在从GitHub克隆项目、编译代码、在端口8989上打开并处理性能测试之后,我们需要让性能插件以用户友好的方式显示结果。

可以通过添加专用的Post-build Actions来实现这一目标。需要提供结果源文件并配置操作:

发布性能测试结果

我们选择标准模式并进行后续配置:

点击保存后,在Jenkins仪表板的左侧菜单中点击按钮立即构建,等待完成我们配置的操作。

完成后,将在控制台看到项目的全部输出。最后,我们会得到成功完成:成功完成:失败

点击左侧菜单中的性能报告区域,可以看到所有过往构建包括当前构建的报告:

点击表格上方的指示,仅查看我们刚刚创建的构建的结果:

从项目仪表板中,我们可以获取性能趋势,这是展示最后构建结果的其他图表:

node {
    stage 'Build, Test and Package'
    git 'https://github.com/eugenp/tutorials.git'
  
    dir('jmeter') {
        sh "./mvnw clean install -DskipTests"
        sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
        sh "while ! httping -qc1
          http://localhost:8989 ; do sleep 1 ; done"
                
        sh "jmeter -Jjmeter.save.saveservice.output_format=xml
          -n -t src/main/resources/JMeter.jmx 
            -l src/main/resources/JMeter.jtl"
        step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
        sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
    }
}

此脚本首先克隆项目,进入目标模块,编译并运行以确保应用可访问于http://localhost:8989。

接下来,我们在资源文件夹中运行JMeter测试,将结果保存为构建输出,最后关闭应用程序。

5. 总结

在这篇快速文章中,我们建立了一个简单的持续交付环境,以两种方式在Jenkins中运行和展示Apache JMeter测试:首先通过Freestyle项目,其次通过Pipeline

如往常一样,本文的源代码可以在GitHub上找到。