zoukankan      html  css  js  c++  java
  • Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

    Step1:安装Jenkins,从指定git上拉代码【安装步骤忽略】

    Step2:在项目安装的linux server上安装Ant 和Jmeter,我都安装在了自己的目录上,如下图

    Step3:编写build文件,注意更改一下自己的邮箱和server name

    <?xml version="1.0" encoding="utf-8"?>
    <project name="autotest" default="all" basedir="/opt/jmxfile/shownow">
      <property name="JMeter.home" value="/opt/jmeter5.1.1"/> 
      <property name="mail_to" value="test@xxx.com"/> 
      <property name="ReportName" value="ShowNow_CI_Report"/> 
      <property name="ComputerName" value="118:25:182:23"/> 
      <tstamp>
        <format property="time" pattern="yyyyMMddhhmm"/>
      </tstamp> 
      <target name="all">
        <antcall target="runJmxFiles"/> 
        <antcall target="genReport"/> 
        <antcall target="sendEmail"/>
      </target> 
      <target name="runJmxFiles" depends="">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/> 
        <jmeter jmeterhome="${JMeter.home}" resultlog="${basedir}/Result/${ReportName}${time}.jtl">
          <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --> 
          <testplans dir="${basedir}" includes="*.jmx"/>
        </jmeter>
      </target> 
          <!-- 解决不显示时间的问题 --> 
      <path id="xslt.classpath">
        <fileset dir="${JMeter.home}/lib" includes="xalan-2.7.2.jar"/> 
        <fileset dir="${JMeter.home}/lib" includes="serializer*.jar"/>
      </path> 
      <target name="genReport" depends="">
        <xslt classpathref="xslt.classpath"
        force="true"
        in="${basedir}/Result/${ReportName}${time}.jtl"
        out="${JMeter.home}/extras/${ReportName}${time}.html"
        style="${JMeter.home}/extras/jmeter-results-detail-report_21.xsl">
          <param name="showData" expression="${show-data}"/> 
          <param name="titleReport" expression="${ReportName}${time}"/> 
          <param name="dateReport" expression="${ReportName}${time}"/>
        </xslt>
      </target> 
      <target name="sendEmail">
        <mail mailhost="smtp.qq.com" mailport="25" user="xxx@foxmail.com" password="xxxx"
        subject="国际站Shownow重点链路脚本 Jmeter Report!"
        messagemimetype="text/html"
        tolist="${mail_to}">
          <from address="xxx@foxmail.com"/> 
          <fileset dir="${JMeter.home}/extras/">
            <include name="${ReportName}${time}.html"/>
          </fileset> 
          <message>This email was sent automatically by ANT + Jmeter. <br>
        If there are any questions, please contact with xxx. Thank you! <br></message>
        </mail>
      </target>
    </project>

    Step4:放置一个jmx工程到指定目录,我这边是到目录 /home/jasqia/apache-jmeter4.0/jmxfile/ikea

    Step5:在服务器上运行试试看:

    /home/jasqia/apache-ant-1.10.3/bin/ant -file /home/jasqia/apache-jmeter4.0/jmxfile/ikea/build.xml

    下图是我埋坑之后,运行成功的结果啦 ^_^

     Step6:在Jenkins上配置,在重启tomcat中间件后,自动运行该接口测试工程并发送邮件:

     the Last Step: 立即部署,运行之后检查邮箱收到的邮件,我这边成功收到,测试报告是附件形式发送的。 开森 ^_^

     总结一下过程中遇到的问题:

    Error 1: 如下截图,很明显的错误

    没有将jmeter中的ant包放到ant的lib目录下,具体目录是在jmeter的extras目录下的ant-jmeter-1.1.1.jar,复制或者剪切到ant的lib下即可

    Error2:  [xslt] /home/jasqia/apache-jmeter4.0/jmxfile/ikea/xxx  Fatal Error! Premature end of file.【大概描述】

    没有将jmeter  property文件中的output类型从csv更新成xml,并将之前的#去除

    Error3:javax email minepackage【大概描述】

    我下的ant安装包不带mail的jar包,需要找寻一下再去放ant的lib下

    以后我会将各种坑进行截屏的 哈哈哈

  • 相关阅读:
    mac配置ls命令显示不同文件不同颜色
    nginx安装
    PostgreSQL的架构
    /etc/sysctl.conf配置文件
    pg_hba.conf配置文件
    gitlab不支持mysql,这就是我学习PostgreSQL的原因
    postgresql安装
    git的三个区域比较
    mysql备份时的快照原理
    mysql密码管理
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/9067212.html
Copyright © 2011-2022 走看看