一、安装准备
1.JDK:jdk-8u121-windows-x64
2.jmeter工具:apache-jmeter-2.13
3.ANT工具:apache-ant-1.9.7-bin
4.jenkins工具:jenkins-2.32.2
二、软件安装
1.JDK的安装
>双击JDK安装包,选择安装路径(本人是默认C盘路径,C:Program FilesJavajdk1.8.0_192)
1)系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 C:Program FilesJavajdk1.8.0_192)
2)系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%in;%JAVA_HOME%jrein;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410094755744-1357107615.png)
3)系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar (注意最前面有一点)
系统变量配置完毕
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410094851597-1991911457.png)
4)检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)若如图所示 显示版本信息 则说明安装和配置成功。
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410094942434-304007304.png)
2.jmeter软件安装
>解压apache-jmeter-2.13.zip到D: 1个人软件jmeterapache-jmeter-5.0apache-jmeter-5.0目录下
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095043916-2033654399.png)
三、安装ANT
>解压apache-ant-1.9.7-bin.zip到D: 6Jenkinsantapache-ant-1.9.7目录下
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095108666-1388225838.png)
>配置ANT环境变量
1)新建以下环境变量:
ANT_HOME:D:Progrom Filesapache-ant-1.9.7,此为你的ANT安装路径,设置完成后,点击"确认"来保存。
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095154566-201825141.png)
2)在环境变量PATH的最后面添加一下内容:
;%ANT_HOME%in 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095202294-1747660341.png)
3)进入cmd命令窗口,在CMD窗口中输入ant -version,敲击回城键,会显示出你安装的ANT版本,如果成功显示,说明你的配置应该是成功了
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095211671-1560621174.png)
四、ANT+Jmeter整合
1、将Jmeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在目录lib子目录之下,ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,之后可以触发Jmeter脚本
2、建了一个目录D: 6JenkinsJmeterTest esultLog,目录中分别建立了html和jtl两个文件夹,之后Ant运行之后将jtl中的文件转换成html中
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095334417-605100515.png)
3、在D: 6Jenkinsantapache-ant-1.9.7文件中建立一个build.xml文件,build.xml内容如下:
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095353582-1014245092.png)
build.xml代码(pan.baidu.com/s/1nv2xVaL),注意要修改红色框框的内容
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <property name="basedirectory" value="D: 1个人软件jmeterapache-jmeter-5.0apache-jmeter-5.0extras" /> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="D: 1个人软件jmeterapache-jmeter-5.0apache-jmeter-5.0" /> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="D: 6JenkinsJmeterTest esultLogjtl" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="D: 6JenkinsJmeterTest esultLoghtml" /> <!-- Name of test (without .jmx) --> <property name="test" value="Test"/> <!-- 生成的报告的前缀--> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${time}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}.html" /> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <target name="run"> <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}"> <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> <testplans dir="D: 6JenkinsJmeterTest" includes="*.jmx" /> </jmeter> </target> <target name="report"> <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> <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>
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095434709-2104474451.png)
4、进入Dos窗口,cd到目标路径下,输入命令ant敲回车,运行结束会有success信息提示,同时生成html测试报告
(通过ant执行jmeter脚本cmd进入目录D: 6Jenkinsantapache-ant-1.9.7输入ant回车,执行jmeter脚本)
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410095711297-1119348028.png)
五、Jenkins的安装
>接下来安装jenkins,解压下载好的Jenkins并安装,然后就是一路next(可以更改自己的安装路径)。
安装完成之后会自动弹出浏览器,其中地址是http://localhost:8080,因为我之前安装了tomcat(默认端口是8080),因此需要更改jenkins文件配置,找到 jenkins安装目录下Jenkinsjenkins.xml文件,然后更改端口号,我改成的是6060(httpPort=6060 )
然后重新启动jenkins,打开浏览器,输入http://localhost:6060,打开界面会有一个admin用户登录界面,需要输入密码,给出的英文提示是需要到安装目录文件下找到secrets文件夹,然后再initialAdminPassword文件中复制内容到登录界面的密码框中,登录即可。
打开Jenkins,首次进入会默认让你选择安装插件(此处如果完全不清楚自己需要什么插件,建议全选)。插件安装完成之后,需要设置登录用户,按照自己喜好设置即可。
1、cmd进入目录下启动jenkins
D: 6Jenkinsjenkins-2.32.2install
java -jar jenkins.war --httpPort=9000
2、系统设置->管理插件->可选插件,搜索Performance plugin(Jmeter报告需要),安装此插件
3、因为需要用到ANT和JDK,所以需要在jenkins中添加插件,选择点击“系统管理”,之后在Global Tool Configuration的界面看到ant和jdk选项,然后将自己本地的ANT和JDK地址填写上
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100349646-1409234549.png)
4、配置、测试邮件1
>在系统设置中找到Jenkins Locaction项填入Jenkins URL和系统管理员邮件地址,系统管理员邮件地址一定要配置,否则发不了邮件通知。因为邮件通知都是由系统管理员的邮箱发出来的
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100429217-1320106603.png)
>按照如图所示设置即可,本处设置的是QQ企业邮箱的服务,其他邮箱按照类似设置即可
>>首先在度娘中找到SMTP服务器地址和端口号及设置QQ邮箱的POP3/SMTP服务
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100456598-1664916200.png)
>>在Jenkins中找到邮件通知项,填入SMTP服务器信息及用户名、密码等认证信息
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100506587-1970279572.png)
>>测试邮件发送成功之后,Extended E-mail Notification参照上面的设置即可。(注意:必须配置,否则后期项目构建发送邮件将失败)
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100517875-1376573120.png)
>进入“系统管理”>>>“插件管理”安装邮件通知插件Email Ext Recipients Column Plugin,Email Extension Plugin
>然后进入到具体的某一job中配置邮件通知
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
默认内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <td>(本邮件是程序自动下发的,请勿回复!)</td> </tr> <tr> <td><h2> <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font> </h2></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称 : ${PROJECT_NAME}</li> <li>构建编号 : 第${BUILD_NUMBER}次构建</li> <li>触发原因: ${CAUSE}</li> <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> </td> </tr> <tr> <td><b><font color="#0B610B">Changes Since Last Successful Build:</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li> </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"} </td> </tr> <tr> <td><b>Test Informations</b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td><pre style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}</pre> <br /></td> </tr> <tr> <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td><textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea> </td> </tr> </table> </body> </html>
![](https://img2020.cnblogs.com/blog/715975/202104/715975-20210410100636658-762432695.png)
附上参考博文