zoukankan      html  css  js  c++  java
  • 在Jenkins的pipeline项目中运行jmeter测试-教程

    与通常的“自由式”项目相比,管道构建具有几个主要优势:

    ●弹性 - 管道构建可以“生存”Jenkins重启。

    ●Pausable / Parameterizable - 在等待用户输入的任何阶段都可以停止管道构建。还可以通过Jenkins API控制Pipeline作业执行

    ●功能和灵活性 - 管道构建可以具有复杂的逻辑,条件操作,并行执行多个代理,与其他作业集成等。使用基于Groovy的DSL定义管道,因此Jenkins和Java API可用于定义作业。

    ●VCS友好性 - 作为Groovy脚本,管道定义代码可以放在版本控制系统下。它甚至可以在Jenkins作业执行期间从那里动态加载,这对于导入/导出/更改跟踪和实验非常有用。

    在今天的文章中,您将了解向管道项目添加JMeter测试的方法,并查看一些代码示例和演示。

    1.通过管道运行现有的JMeter Build Step

    本章假设您已经有一个工作构建步骤,针对您的应用程序执行了JMeter测试。如果没有 - 请查看持续集成101:如何使用Jenkins运行JMeter文章以获取概述和设置说明。如果您有一个运行JMeter测试的Jenkins作业,并且它被称为“JMeter - Freestyle”,您可以从Pipeline运行它,如下所示:

    建立工作:'JMeter - Freestyle'

    完整的Pipeline代码如下所示:

    build job: 'JMeter - Freestyle'
    
     
    
    The full Pipeline code will look something like:
    
     
    
    node {
       stage 'Build Application'
       // do what you need to do to build your application
       echo 'Compilation is done'
       stage 'Deploy Application'
       // do what you need to do to deploy your application
       echo 'Deploy is done'
       stage 'Execute JMeter Performance Tests'
       build job: 'JMeter - Freestyle'
    }

    增加图像詹金斯jmeter管道

    基本上,上面的Pipeline配置只是触发预定义的“JMeter - Freestyle”Jenkins Job作为Pipeline构建的一部分,并通过Pipeline Dashboard报告已用时间,成功和一些日志。

    增加图像詹金斯jmeter管道

     

    指定构建参数

    如果您的现有作业已参数化,则参数可以通过Pipeline传递,如:

    node { 
       stage '执行JMeter性能测试'
       构建作业:'JMeter - Freestyle',参数:[[$ class:'StringParameterValue',name:'VirtualUsers',value:'100' ]] 
    }

    node {
       stage 'Execute JMeter Performance Tests'
       build job: 'JMeter - Freestyle', parameters: [[$class: 'StringParameterValue', name: 'VirtualUsers', value: '100']]
    }

    2.使用管道配置新的JMeter测试

    鉴于Pipeline项目基于Groovy的特性,您可以使用Groovy语法启动任何进程。Jenkins反过来提供了一些简易变量以使其更容易。例如,您可以对基于Unix的系统使用sh命令,或者为Windows系统使用bat命令以启动shell脚本(JMeter启动脚本通常是shell脚本)。有关更多详细信息,请参阅Pipeline Configuratio Jenkins手册章节的基本Groovy语法

    运行基于命令行的JMeter测试的Pipeline阶段看起来很简单:

    node {
       stage 'Run JMeter Test'
       bat 'c:/jmeter/bin/jmeter.bat -n -t c:/jmeter/extras/Test.jmx -l test.jtl'
    }

    输出类似,但在这种情况下,日志信息将直接在“运行JMeter测试”阶段提供。

    增加图像詹金斯jmeter管道输出

    发布构建工件

    默认情况下,Pipeline构建不会向构建仪表板发布任何内容。您需要手动指定需要存储的内容,以便您自己,团队成员,利益相关者等直接通过Jenkins Web界面访问结果。

    要告诉Jenkins在构建完成后发布ie JMeter .jtl结果文件,您需要在管道配置中添加以下行:

    step([$class: 'ArtifactArchiver', artifacts: '**/*.jtl'])

    或者,如果您需要存储jmeter.log文件以供以后分析:

    step([$class: 'ArtifactArchiver', artifacts: '**/*.jtl, **/jmeter.log'])

    添加此步骤后,您应该能够在构建仪表板上看到“常规构建步骤 - >存档工件”日志消息和.jtl结果以及jmeter.log文件。

    增加图像jenkins jmeter管道配置

    使用第三方构建工具(Ant,Maven等)

    通过命令行运行JMeter测试不是唯一的选择。JMeter测试也可以使用Ant Task,Maven Plugin,Gradle Plugin等执行。

    作为终极的持续集成工具,Jenkins支持开箱即用的上述构建工具。您可以根据需要进行安装,并在“ 全局工具配置”页面中进行配置

    Jenkins - >管理Jenkins - >全局工具配置

    要么

    HTTP:// jenkins_host:jenkins_port / configureTools /

    增加图像詹金斯全球工具配置

    在本指南中,我将使用Apache Ant作为示例。其他构建系统的说明应该类似。如果您查看JMeter安装的“extras”文件夹,您将找到build.xml文件示例Ant脚本,该脚本用于执行Test.jmx并使用XSL模板将生成的文件转换为HTML格式,因此您将成为能够直接在Jenkins仪表板上获取HTML报告。

    让我们看看相关的Pipeline配置是什么样的:

    ●首先,我们需要将Jenkins工作区切换到JMeter的“extras”文件夹,因为假定从那里启动Ant构建文件并且结果文件也将存储在那里。在Jenkins Pipeline中,可以使用ws命令完成,例如:

     
    
    ws('c:\jmeter\extras') {
       //do what you need to do here
    }
    
     

    ●其次,我们需要从Jenkins获取Ant工具位置。可以使用以下工具命令来完成

    def antHome = tool 'ant'

    现在我们有了antHome变量,变量解析为Ant构建工具的位置。

    ●第三和第四:我们需要运行测试并发布结果。这已在前一章中介绍过。

    总而言之,最终的Pipeline代码如下所示:

    node {
       ws('c:\jmeter\extras') {
           stage 'Run JMeter Test with Apache Ant'
           def antHome = tool 'ant'
           bat "pushd c:\jmeter\extras && ${antHome}\bin\ant -f build.xml"
           step([$class: 'ArtifactArchiver', artifacts: 'Test.html', fingerprint: true])
       }
    }

    当您开始构建时,Jenkins将通过Pipeline代码调用Apache Ant,并将生成的“Test.html”工件发布到构建仪表板。

    增加图像詹金斯jmeter管道蚂蚁

  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/a00ium/p/10847823.html
Copyright © 2011-2022 走看看