zoukankan      html  css  js  c++  java
  • JMeter(2) 集成jmeter+ant+jenkins

    一、ant安装

    $su root
    $vi /etc/bashrc
    插入两行(i+enter插入)
    export ANT_HOME=/usr/local/apache-ant-1.9.3
    export PATH=${PATH}:${ANT_HOME}/bin
    退出(exit),保存修改:wq!
    exit
    让配置立即生效:
    $source /etc/bashrc
    验证生效:
    $ant -version
    输出版本号即为成功

    二、运行脚本前准备

    1. 录制Jmeter脚本0622.jmx

    2. 将JMeter->extras->ant-JMeter-1.1.1.jar复制到Ant->lib目录下(这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本)

    3. jmeter默认保存的是.csv格式的文件,所以我们先要修改一下bin/jmeter.properties,保存 jmeter.save.saveservice.output_format=xml

    4. 主要逻辑思路:
      运行script下面的.jmx脚本,生成.jtl文件放入resultLogjtl文件中,ant在将相应的文件转换为对应的html文件放入resultLoghtml中
      <pre><code>
      <?xml version="1.0" encoding="utf-8"?>
      <project name="JmeterTest" default="all" basedir=".">
      <tstamp>
      <format property="time" pattern="yyyyMMddhhmm" />
      </tstamp>

      <property name="jmeter.home" value="D:softwareapache-jmeter-3.0" />

      <property name="jmeter.result.jtl.dir" value="D:softwareapache-jmeter-3.0jmeterTest esultLogjtl" />

      <property name="jmeter.result.html.dir" value="D:softwareapache-jmeter-3.0jmeterTest esultLoghtml" />

      <property name="ReportName" value="TestReport" />
      <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
      <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

      <property name="mail_to" value="1939986747@qq.com" />

      <property name="ComputerName" value="Susie" />
      <target name="all">
      <antcall target="test" />
      <antcall target="report" />
      </target>
      <target name="test">
      <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
      <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

      <testplans dir="D:softwareapache-jmeter-3.0jmeterTestscript" includes="0622.jmx" />
      </jmeter>
      </target>

      <path id="xslt.classpath">
      <fileset dir="${jmeter.home}/lib" includes="xalan.jar"/>
      <fileset dir="${jmeter.home}/lib" includes="serializer
      .jar"/>
      </path>

      <target name="report">
      <xslt
      classpathref="xslt.classpath"
      force="true"
      in="${jmeter.result.jtlName}"
      out="${jmeter.result.htmlName}"
      style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
      <param name="dateReport" expression="${report.datestamp}"/>
      </xslt>

       <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
       <copy todir="${jmeter.result.html.dir}">
           <fileset dir="${jmeter.home}/extras">
               <include name="collapse.png" />
               <include name="expand.png" />
           </fileset>
       </copy>
      

      </target>

      </project></code></pre>
      想要运行多个脚本的话可以修改配置文件里面的目标script
      <pre><code>
      <testplans dir="D:softwareapache-jmeter-3.0jmeterTestscript" includes="*.jmx" />
      </code></pre>

    三、运行测试脚本

    命令行进入到jmeterTest里面,运行ant命令,可以看到build成功


     
    命令窗口.png

    运行之前的文件目录


     
     

    运行之后的文件目录,可看到生成了测试报告
     
     

    <span id = "jump">跳转到这里:</span>

    四、测试报告

    1. 测试报告为空,MinTime和MaxTime为NaN

    样式表版本不对,所以网上找了到jmeter-results-detail-report_21.xsl,下载放到jmeter->extra下
    把jmeter->lib下的xalan.jar、serializer.jar复制到ant->lib下
    重新跑脚本,这次打开就是ok了

    1. 样式拓展
      样式参考 http://shanhe.me/node/18/314,修改extras.build,下载shanghe.xml

    五、集成jenkins

    1. 运行jenkins
      命令行进入jenkins目录,运行 java -jar jenkins.war
      浏览器打开http://localhost:8080/, 看到jenkins首页

       
       
    2. 新建项目
      新建->item名称->选择“自由风格”->ok,项目新建成功进入配置页

    3. 构建触发器
      想要定时构建,可以选择Build periodically,日程表参数解释如下:
      第一个参数代表的是分钟minute,取值0~59;
      第二个参数代表的是小时hour,取值0~23;
      第三个参数代表的是天day,取值1~31;
      第四个参数代表的是月month,取值1~12;
      第五个参数代表的是星期week,取值0~7,0和7都代表星期天。
      如 0 * * * * 表示每小时的第0分钟执行一次构建。
      0 16 * * 1 表示每周一16时0分执行一次。
      01 12 * * 1-5表示周一到周五的12点01分执行一次

    4. 引入ant
      构建->增加构建步骤->Invoke Ant->BuildFile 填build文件的地址


       
       
    5. 执行任务
      点击立即构建,立即运行一次任务


       
       

      在左下角BuildHistory里面可以查看运行结果详情


       
       
    6. jenkins自带的报告插件查看测试结果
      为了更加方便地查看测试报告,插件列表里面添加Publish Performance test result report和Publish HTML reports
      项目的配置增加这两块:


       
       

      !!修改xml文件生成jtl和html文件的目录到jenkins的工作目录下(jenkins设置如此吧,只能读自己工作目录的文件,不然要修改jenkins的配置太麻烦了。゚(゚´ω`゚)゚。此处经过挺多波折不细说了)

    <property name="jmeter.result.jtl.dir" value="C:Users11.jenkinsworkspacejtl" />
    <property name="jmeter.result.html.dir" value="C:Users11.jenkinsworkspacehtml" />
    

    好了再次保存后运行


     
     

    可以看到历史报告在这里了,点进去看看吧 d(`・∀・)b


     
     
    1. 测试结果发布邮件
      系统设置
      设置发件邮箱信息,注意保持发件邮箱跟管理员邮箱一致==
       
       

      smpt服务器设置每个邮箱都不一样,点击发送测试邮件,收件箱会收到测试邮件
       
       

       
       

      项目配置
       
       

      运行一下工程,会收到邮件~报告样式后续优化
       
       

    六、优化jenkins主题

    因为jenkins的字体和界面丑得有点一言难尽,于是找到了
    超棒的jenkins主题网站
    按照教程做就ok~替换主题后界面顺眼很多:扁平化、字体也好看了

     
     

    如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

    赞赏支持
     
    接口自动化Jmeter
    Gupao
    登录 后发表评论
     
     
    图图4485
    12楼 · 2018.02.28 22:47

    你好 我在jenkins发送邮件中html报告附件为啥一直收不到,能说下附件的路径格式么?

     
    shelva0324
    11楼 · 2018.01.18 15:49

    你好,我按照你说的步骤去做,但是在构建的时候,没有找到Invoke Ant这个选项,请问我该如何操作呢?谢谢。

    “增加构建步骤”的菜单里有Invoke Ant
    2018.01.18 15:58 回复
    @susie酱 我点击增加构建步骤,选项只有3个:
    Execute Windows batch command
    Execute shell
    Invoke top-level Maven targets
    2018.01.18 16:19 回复
    @shelva0324 看一下系统管理->插件管理里面有没有Ant Plugin,没有的话安装一下;
    然后在全局工具配置里配置ant
    2018.01.18 16:33 回复
    添加新评论 还有1条评论, 展开查看
    Forkey
    10楼 · 2017.08.06 11:39


    @susie酱 麻烦帮忙看下,这个是什么原因呢
    Started by user Forkey
    Building in workspace /Users/Shared/Jenkins/Home/workspace/JmeterTest
    [JmeterTest] $ /Applications/apache-ant-1.10.1/bin/ant /Applications/apache-jmeter-3.2/jmeterTest/build.xml
    Buildfile: /Users/Shared/Jenkins/Home/workspace/JmeterTest/build.xml

    BUILD FAILED
    Target "/Applications/apache-jmeter-3.2/jmeterTest/build.xml" does not exist in the project "JmeterTest".

    Total time: 0 seconds
    Build step 'Invoke Ant' marked build as failure
    Finished: FAILURE

    @Forkey 系统找不到xml的文件
    2017.08.08 09:35 回复
    Forkey
    @susie酱 嗯嗯,我后面配置好了,谢谢哈
    2017.08.08 10:27 回复
    叫我小刘
    9楼 · 2017.03.30 16:16

    如何在测试报告的Failure Detail模块显示Response Data呀,网上找了好久没找到

    你用哪一个模板呢
    2017.03.30 18:26 回复
    @susie酱 已经搞定了,jmeter.properties中设置的:fearful:
    2017.03.30 21:45 回复
    @叫我小刘 :+1:
    2017.03.31 10:32 回复
    叫我小刘
    8楼 · 2017.03.17 18:07

    测试邮件发送成功了,项目配置的邮件没有收到是什么原因呀,好急:sob:

     
    太阳当空照我要上学校
    7楼 · 2017.03.16 19:56

    "!!修改xml文件生成jtl和html文件的目录到jenkins的工作目录下(jenkins设置如此吧,只能读自己工作目录的文件,不然要修改jenkins的配置太麻烦了"
    嗨~ 这句话是说要在Jenkins 工作目录下也要创建jtl、html 文件夹么?

    然后把build.xml 文件中的路径换成 Jenkins 下的?
    2017.03.16 19:57 回复
    测试邮件发送成功了,项目配置的邮件没有收到是什么原因呀,好急:sob:
    2017.03.17 18:07 回复
    @叫我小刘 我的邮件也没有弄好,测试邮件这块都没通过,呜呜
    2017.03.17 18:08 回复
    添加新评论 还有7条评论, 展开查看
    http200
    6楼 · 2017.02.27 10:41

    susie你好,
    我执行构建的时候报错:BUILD FAILED
    /home/dongdz/apache-jmeter-3.1/script/crm/build/build1.xml:26: taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
    using the classloader AntClassLoader[],请问是什么原因?

    @http200 是不是没有把ant-JMeter-1.1.1.jar放到ant文件夹下面
    2017.02.27 14:00 回复
    嗯嗯,可以了,谢谢
    2017.02.27 16:01 回复


    作者:susie酱
    链接:https://www.jianshu.com/p/60cb4f03b872
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    golang删除数组某个元素
    golang用通道实现信号量,控制并发个数
    什么是ScaleIO中的forwards rebuild和backwards rebuild?
    SQL Server中的database checkpoint
    如何将thick provision lazy zeroed的VMDK文件转换为thick provision eager zeroed?
    LoadTestAgentResultsLateException in VS2010
    SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?
    VMware vCenter中, 如何辩认虚机上Raw Device Mapping过了的一块物理磁盘?
    SQL Server AlwaysOn Setup Step-By-Step Guide
    TPC-E在populate测试Database时需要注意的一些事项
  • 原文地址:https://www.cnblogs.com/a00ium/p/10296088.html
Copyright © 2011-2022 走看看