Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

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

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

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

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

Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail

没有将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下

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

上一篇:CCBAnimationManager


下一篇:【C++探索之旅】第二部分第一课:面向对象初探,string的惊天内幕